Consulta de vendas todos os meses - Sql [resolvido]
4 respostas
N
nathanRayden
Olá galera!
Tenho no meu banco uma tabela vendas, todas as vendas tem sua data…
tem como eu trazer por select assim:
mês | total das vendas
10 | 1200
11 | 3000
tipo isso, tazer o mês e o total de vendas dele…
Não manjo muito de sql, eu estava tentando assim…
SELECT numero_nota, SUM(valor_nota) as total
FROM nota n
where extract(month from data_nota)<=01
and extract(year from data_nota)<= 2011
GROUP BY n.numero_nota
mas aí eu ponho o mes e o ano na mão…e traz todas as vendas, não o valor total dele somente…
quase consegui! só q ainda não mostra todas as vendas de um mês num resultado só
SELECT extract(month from data_nota)as mes, SUM(valor_nota) as total
FROM nota n
where extract(month from data_nota) between 01 and 12
and extract(year from data_nota) between 2011 and 2012
group by data_nota
order by mes asc
quem conseguir ajudar, por favor…obrigado!
H
Hebert_Coelho
Pra que isso aqui? extract(month from data_nota) between 01 and 12
Todo mes não vai estar sempre dentro desse valor?
Tente a consulta abaixo:
SELECT extract(month from data_nota)as mes, SUM(valor_nota) as total
FROM nota n
where extract(year from data_nota) between 2011 and 2012
group by extract(month from data_nota)
order by mes asc
E
evefuji
uma coisa, fazer no where o between usando a função extract é mais pesado para o banco que comparar a data se está entre 2011-01-01 e 2012-12-31 23:59:59.999. Em uma tabela de milhões de registros dá uma grannnnnnde diferença.
N
nathanRayden
jakefrog:
Pra que isso aqui? extract(month from data_nota) between 01 and 12
Todo mes não vai estar sempre dentro desse valor?
Tente a consulta abaixo:
SELECT extract(month from data_nota)as mes, SUM(valor_nota) as total
FROM nota n
where extract(year from data_nota) between 2011 and 2012
group by extract(month from data_nota)
order by mes asc