Montar SQL por mes agrupado
08/08/2008
0
MES VALOR
JANEIRO 1000,00
FEVEREIRO 500,00
JULHO 250,00
Como posso montar uma sql q AGRUPA e totaliza o valor de uma tabela .
tabela de PAGAMENTOS ( Codigo, Vencto, Valor )
Utilizo D7, Interbase.
desde ja agradeco.
Walter Faria
Posts
08/08/2008
Webjoel
Segue o SQL:
SELECT EXTRACT(MONTH FROM DT_VENCIMENTO) AS MES, SUM(VALOR) AS TOTAL_MES FROM PAGAMENTOS GROUP BY MES;
Dependendo do seu objetivo, seria importamte agrupar também pelo ano, extraindo o year da dt_vencimento também, e agrupando pelos dois.
08/08/2008
Walter Faria
Select EXTRACT(MONTH FROM DataVencimento) as MES, Sum(Valor) as Valor from CHEQUE
Group by DataVencimento
MES VALOR
2 1000,00
5 500,00
queria q ficasse assim , tem como ?
MES VALOR
fevereiro 1000,00
maio 500,00
08/08/2008
Vitor Alcantara
Select CASE EXTRACT(MONTH FROM DataVencimento) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´AGOSTO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END as MES, Sum(Valor) as Valor from CHEQUE Group by DataVencimento
08/08/2008
Walter Faria
token tonknow - line 2, char 8 EXTRACT
oq pode ser?
08/08/2008
Adriano_servitec
gostaria de saber como faço um order by neste select aqui, para ordernar por mes
Select CASE EXTRACT(MONTH FROM mes) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´AGOSTO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END as MES, Sum(Valor) as Valor from new_table group by 1 order by extract(month from mes) desc
[color=red:123e0677b1]
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Dumped 72678736 pages of a total 40538700 database pages.[/color:123e0677b1]
Assim funciona
select extract(month from mes), sum(valor) as valor from new_table group by 1 order by extract(month from mes) desc
08/08/2008
Adriano_servitec
Mais arrumei, e coloquei o certo e não é ai não o problema.
08/08/2008
Webjoel
Select EXTRACT(MONTH FROM T.DT_VENCIMENTO) AS NR_MES, CASE EXTRACT(MONTH FROM T.DT_VENCIMENTO) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´AGOSTO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END AS MES, SUM(T.VALOR) as VALOR from TABELA T group by 1,2 order by 1
08/08/2008
Adriano_servitec
Select EXTRACT(MONTH FROM T.DT_VENCIMENTO) AS NR_MES, CASE EXTRACT(MONTH FROM T.DT_VENCIMENTO) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´AGOSTO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END AS MES, SUM(T.VALOR) as VALOR from TABELA T group by 1,2 order by 1
Select EXTRACT(MONTH FROM mes) AS NR_MES, CASE EXTRACT(MONTH FROM mes) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´OUTUBRO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END AS MES, SUM(VALOR) as VALOR from new_table group by 1,2 order by 1 desc
Obrigado.
09/08/2008
Webjoel
Então, lá onde você vai mostrar o resultado é só ignorar este primeiro campo mesmo.
Boas compilações!
09/08/2008
Adriano_servitec
Obrigado amigo
10/08/2008
Walter Faria
se alguem puder me ajudar, fico grato
11/08/2008
Adriano_servitec
se alguem puder me ajudar, fico grato[/quote:1c00802b4d]Acho que o erro ai é porque a função CASE foi implementada a partir InterBase 7.5.
Se vc estiver usando uma versão inferior o CASE não vai funcionar, mais também não sei como fazer, pois não utilizo o interbase.
11/08/2008
Adriano_servitec
Select EXTRACT(MONTH FROM mes) AS NR_MES, Extract(year from mes) as NR_Ano, CASE EXTRACT(MONTH FROM mes) WHEN 1 THEN ´JANEIRO´ WHEN 2 THEN ´FERVEREIRO´ WHEN 3 THEN ´MARÇO´ WHEN 4 THEN ´ABRIL´ WHEN 5 THEN ´MAIO´ WHEN 6 THEN ´JUNHO´ WHEN 7 THEN ´JULHO´ WHEN 8 THEN ´AGOSTO´ WHEN 9 THEN ´SETEMBRO´ WHEN 10 THEN ´OUTUBRO´ WHEN 11 THEN ´NOVEMBRO´ WHEN 12 THEN ´DEZEMBRO´ END AS MES, SUM(VALOR) as VALOR from new_table group by 1,2,3 order by 1,2
Clique aqui para fazer login e interagir na Comunidade :)