Ajuda em Consulta
estou usando a seguinte conculta para tentar agrupar um relatório com as somas pr mes de referncia:
SELECT numchamado,
SUM(CASE WHEN Month(dtref)=1 THEN 1 ELSE 0) AS Jan
SUM(CASE WHEN Month(dtref)=2 THEN 1 ELSE 0) AS Fev
SUM(CASE WHEN Month(dtref)=3 THEN 1 ELSE 0) AS Mar
SUM(CASE WHEN Month(dtref)=4 THEN 1 ELSE 0) AS Abr
SUM(CASE WHEN Month(dtref)=5 THEN 1 ELSE 0) AS Mai
SUM(CASE WHEN Month(dtref)=6 THEN 1 ELSE 0) AS Jun
SUM(CASE WHEN Month(dtref)=7 THEN 1 ELSE 0) AS Jul
SUM(CASE WHEN Month(dtref)=8 THEN 1 ELSE 0) AS Ago
SUM(CASE WHEN Month(dtref)=9 THEN 1 ELSE 0) AS Sete
SUM(CASE WHEN Month(dtref)=10 THEN 1 ELSE 0) AS Outu
SUM(CASE WHEN Month(dtref)=11 THEN 1 ELSE 0) AS Nov
SUM(CASE WHEN Month(dtref)=12 THEN 1 ELSE 0) AS Dez
FROM base
GROUP BY numchamado
Mas está dando o seguinte erro:
Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near ´)´.
O que pode estar errado ?
Andre Luis
andre@leitbom.com.br
SELECT numchamado,
SUM(CASE WHEN Month(dtref)=1 THEN 1 ELSE 0) AS Jan
SUM(CASE WHEN Month(dtref)=2 THEN 1 ELSE 0) AS Fev
SUM(CASE WHEN Month(dtref)=3 THEN 1 ELSE 0) AS Mar
SUM(CASE WHEN Month(dtref)=4 THEN 1 ELSE 0) AS Abr
SUM(CASE WHEN Month(dtref)=5 THEN 1 ELSE 0) AS Mai
SUM(CASE WHEN Month(dtref)=6 THEN 1 ELSE 0) AS Jun
SUM(CASE WHEN Month(dtref)=7 THEN 1 ELSE 0) AS Jul
SUM(CASE WHEN Month(dtref)=8 THEN 1 ELSE 0) AS Ago
SUM(CASE WHEN Month(dtref)=9 THEN 1 ELSE 0) AS Sete
SUM(CASE WHEN Month(dtref)=10 THEN 1 ELSE 0) AS Outu
SUM(CASE WHEN Month(dtref)=11 THEN 1 ELSE 0) AS Nov
SUM(CASE WHEN Month(dtref)=12 THEN 1 ELSE 0) AS Dez
FROM base
GROUP BY numchamado
Mas está dando o seguinte erro:
Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near ´)´.
O que pode estar errado ?
Andre Luis
andre@leitbom.com.br
Andre Silveira
Curtidas 0
Respostas
Robertolucio
03/11/2004
Boa tarde Andre,
Tenta aí:
SELECT numchamado,
SUM(CASE WHEN Month(dtref)=1 THEN 1 ELSE 0 END) AS Jan,
SUM(CASE WHEN Month(dtref)=2 THEN 1 ELSE 0 END) AS Fev,
SUM(CASE WHEN Month(dtref)=3 THEN 1 ELSE 0 END) AS Mar,
SUM(CASE WHEN Month(dtref)=4 THEN 1 ELSE 0 END) AS Abr,
SUM(CASE WHEN Month(dtref)=5 THEN 1 ELSE 0 END) AS Mai,
SUM(CASE WHEN Month(dtref)=6 THEN 1 ELSE 0 END) AS Jun,
SUM(CASE WHEN Month(dtref)=7 THEN 1 ELSE 0 END) AS Jul,
SUM(CASE WHEN Month(dtref)=8 THEN 1 ELSE 0 END) AS Ago,
SUM(CASE WHEN Month(dtref)=9 THEN 1 ELSE 0 END) AS Sete,
SUM(CASE WHEN Month(dtref)=10 THEN 1 ELSE 0 END) AS Outu,
SUM(CASE WHEN Month(dtref)=11 THEN 1 ELSE 0 END) AS Nov,
SUM(CASE WHEN Month(dtref)=12 THEN 1 ELSE 0 END) AS Dez
FROM base
GROUP BY numchamado
Espero ter ajudado,
Att
Roberto
Tenta aí:
SELECT numchamado,
SUM(CASE WHEN Month(dtref)=1 THEN 1 ELSE 0 END) AS Jan,
SUM(CASE WHEN Month(dtref)=2 THEN 1 ELSE 0 END) AS Fev,
SUM(CASE WHEN Month(dtref)=3 THEN 1 ELSE 0 END) AS Mar,
SUM(CASE WHEN Month(dtref)=4 THEN 1 ELSE 0 END) AS Abr,
SUM(CASE WHEN Month(dtref)=5 THEN 1 ELSE 0 END) AS Mai,
SUM(CASE WHEN Month(dtref)=6 THEN 1 ELSE 0 END) AS Jun,
SUM(CASE WHEN Month(dtref)=7 THEN 1 ELSE 0 END) AS Jul,
SUM(CASE WHEN Month(dtref)=8 THEN 1 ELSE 0 END) AS Ago,
SUM(CASE WHEN Month(dtref)=9 THEN 1 ELSE 0 END) AS Sete,
SUM(CASE WHEN Month(dtref)=10 THEN 1 ELSE 0 END) AS Outu,
SUM(CASE WHEN Month(dtref)=11 THEN 1 ELSE 0 END) AS Nov,
SUM(CASE WHEN Month(dtref)=12 THEN 1 ELSE 0 END) AS Dez
FROM base
GROUP BY numchamado
Espero ter ajudado,
Att
Roberto
GOSTEI 0
Andre Silveira
03/11/2004
Cara funcionou, mas estava errado.
O que eu realmente quero é o seguinte:
Quero que ele me dê as somas dos valores em cada mês, algo mais ou menos assim:
SELECT numchamado,
CASE WHEN Month(dtref)=1 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jan,
CASE WHEN Month(dtref)=2 THEN Sum(base.vlrbruto) ELSE 0 END) AS Fev,
CASE WHEN Month(dtref)=3 THEN Sum(base.vlrbruto) ELSE 0 END) AS Mar,
CASE WHEN Month(dtref)=4 THEN Sum(base.vlrbruto) ELSE 0 END) AS Abr,
CASE WHEN Month(dtref)=5 THEN Sum(base.vlrbruto) ELSE 0 END) AS Mai,
CASE WHEN Month(dtref)=6 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jun,
CASE WHEN Month(dtref)=7 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jul,
CASE WHEN Month(dtref)=8 THEN Sum(base.vlrbruto) ELSE 0 END) AS Ago,
CASE WHEN Month(dtref)=9 THEN Sum(base.vlrbruto) ELSE 0 END) AS Sete,
CASE WHEN Month(dtref)=10 THEN Sum(base.vlrbruto) ELSE 0 END) AS Outu,
CASE WHEN Month(dtref)=11 THEN Sum(base.vlrbruto) ELSE 0 END) AS Nov,
CASE WHEN Month(dtref)=12 THEN Sum(base.vlrbruto) ELSE 0 END) AS Dez
FROM base
GROUP BY numchamado
Quero totalizar os valores dentro dos meses de referência de cada um e que ele me retorne os totais de cada numero chamado dentro de cada mês.
Num sei se consegui me expressar corretamente.
Andre Luis
andre@leitbom.com.br
O que eu realmente quero é o seguinte:
Quero que ele me dê as somas dos valores em cada mês, algo mais ou menos assim:
SELECT numchamado,
CASE WHEN Month(dtref)=1 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jan,
CASE WHEN Month(dtref)=2 THEN Sum(base.vlrbruto) ELSE 0 END) AS Fev,
CASE WHEN Month(dtref)=3 THEN Sum(base.vlrbruto) ELSE 0 END) AS Mar,
CASE WHEN Month(dtref)=4 THEN Sum(base.vlrbruto) ELSE 0 END) AS Abr,
CASE WHEN Month(dtref)=5 THEN Sum(base.vlrbruto) ELSE 0 END) AS Mai,
CASE WHEN Month(dtref)=6 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jun,
CASE WHEN Month(dtref)=7 THEN Sum(base.vlrbruto) ELSE 0 END) AS Jul,
CASE WHEN Month(dtref)=8 THEN Sum(base.vlrbruto) ELSE 0 END) AS Ago,
CASE WHEN Month(dtref)=9 THEN Sum(base.vlrbruto) ELSE 0 END) AS Sete,
CASE WHEN Month(dtref)=10 THEN Sum(base.vlrbruto) ELSE 0 END) AS Outu,
CASE WHEN Month(dtref)=11 THEN Sum(base.vlrbruto) ELSE 0 END) AS Nov,
CASE WHEN Month(dtref)=12 THEN Sum(base.vlrbruto) ELSE 0 END) AS Dez
FROM base
GROUP BY numchamado
Quero totalizar os valores dentro dos meses de referência de cada um e que ele me retorne os totais de cada numero chamado dentro de cada mês.
Num sei se consegui me expressar corretamente.
Andre Luis
andre@leitbom.com.br
GOSTEI 0
Robertolucio
03/11/2004
Andre, se eu entendi é isso:
SELECT CASE WHEN Month(dtref)=1 THEN Sum(base.vlrbruto) ELSE 0 END AS Jan,
CASE WHEN Month(dtref)=2 THEN Sum(base.vlrbruto) ELSE 0 END AS Fev,
CASE WHEN Month(dtref)=3 THEN Sum(base.vlrbruto) ELSE 0 END AS Mar,
CASE WHEN Month(dtref)=4 THEN Sum(base.vlrbruto) ELSE 0 END AS Abr,
CASE WHEN Month(dtref)=5 THEN Sum(base.vlrbruto) ELSE 0 END AS Mai,
CASE WHEN Month(dtref)=6 THEN Sum(base.vlrbruto) ELSE 0 END AS Jun,
CASE WHEN Month(dtref)=7 THEN Sum(base.vlrbruto) ELSE 0 END AS Jul,
CASE WHEN Month(dtref)=8 THEN Sum(base.vlrbruto) ELSE 0 END AS Ago,
CASE WHEN Month(dtref)=9 THEN Sum(base.vlrbruto) ELSE 0 END AS Sete,
CASE WHEN Month(dtref)=10 THEN Sum(base.vlrbruto) ELSE 0 END AS Outu,
CASE WHEN Month(dtref)=11 THEN Sum(base.vlrbruto) ELSE 0 END AS Nov,
CASE WHEN Month(dtref)=12 THEN Sum(base.vlrbruto) ELSE 0 END AS Dez
FROM base
GROUP BY month(dtref)
Qualquer coisa, é só retornar
Att
Roberto
SELECT CASE WHEN Month(dtref)=1 THEN Sum(base.vlrbruto) ELSE 0 END AS Jan,
CASE WHEN Month(dtref)=2 THEN Sum(base.vlrbruto) ELSE 0 END AS Fev,
CASE WHEN Month(dtref)=3 THEN Sum(base.vlrbruto) ELSE 0 END AS Mar,
CASE WHEN Month(dtref)=4 THEN Sum(base.vlrbruto) ELSE 0 END AS Abr,
CASE WHEN Month(dtref)=5 THEN Sum(base.vlrbruto) ELSE 0 END AS Mai,
CASE WHEN Month(dtref)=6 THEN Sum(base.vlrbruto) ELSE 0 END AS Jun,
CASE WHEN Month(dtref)=7 THEN Sum(base.vlrbruto) ELSE 0 END AS Jul,
CASE WHEN Month(dtref)=8 THEN Sum(base.vlrbruto) ELSE 0 END AS Ago,
CASE WHEN Month(dtref)=9 THEN Sum(base.vlrbruto) ELSE 0 END AS Sete,
CASE WHEN Month(dtref)=10 THEN Sum(base.vlrbruto) ELSE 0 END AS Outu,
CASE WHEN Month(dtref)=11 THEN Sum(base.vlrbruto) ELSE 0 END AS Nov,
CASE WHEN Month(dtref)=12 THEN Sum(base.vlrbruto) ELSE 0 END AS Dez
FROM base
GROUP BY month(dtref)
Qualquer coisa, é só retornar
Att
Roberto
GOSTEI 0
Eduardo.padilha
03/11/2004
Caro Andre Silveira.
Eu faria de uma forma mais simplificada.
SELECT MONTH(x.campo_data), SUM(x.campo_valor)
FROM Tabela X
WHERE (YEAR(x.campo_data) = 2004)
GROUP BY MONTH(x.campo_data)
ORDER BY MONTH(x.campo_data)
Obs. Retornara os meses do ano 2004 com suas respectivas somas para cada um deles, espero que ajude.
Eu faria de uma forma mais simplificada.
SELECT MONTH(x.campo_data), SUM(x.campo_valor)
FROM Tabela X
WHERE (YEAR(x.campo_data) = 2004)
GROUP BY MONTH(x.campo_data)
ORDER BY MONTH(x.campo_data)
Obs. Retornara os meses do ano 2004 com suas respectivas somas para cada um deles, espero que ajude.
GOSTEI 0