Consulta de vendas todos os meses - Sql [resolvido]

4 respostas
N

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…

Obrigado!

4 Respostas

N

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

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

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

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

Valeu!!! deu certo! Obrigado!

Criado 4 de janeiro de 2012
Ultima resposta 4 de jan. de 2012
Respostas 4
Participantes 3