Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos.. preciso de um SQL que me retorne a média por mês e por ano de um determinado produto.
Possuo duas tabelas chamadas cfope vendas que se relacionam entre si através do campo CFOP. A tabela CFOP possui duas colunas (CFOP e DESCRICAO) e na minha consulta deve retornar apenas os registros cuja descricao de cfop comecem com a string 'VEND'.
No exemplo abaixo, quero fazer a média apenas do mês de janeiro para comparar com os resultados de uma planilha que possuo, por isso tantos filtros. Se funcionar para esse mês, vai funcionar para os demais também. Existem 4 registros como vou listar agora com apenas os campos necessários para o entendimento do problema:
EMPRESA : 1, 1, 2, 2, 2
QTD : 1, 3, 15, 1, 1
REFERENCIA : 16911, 16911, 16911, 16911, 16911
Com a query abaixo, os valores de SUM(QTD) não me retornam 4, 17 como eu esperava. Em vez disso, surge 50, 112. Sem o join essa quantidade diminui um pouco. Coloquei o disntinct no começo mas não mudou nada, alguém pode dar um help??? Tentei usar COUNT (QTD) tbm, mas não funcionou. Como obter a soma da quantidade dessas vendas agrupadas por empresa e retornando o valor desejado??
valeu!
SELECT DISTINCT SUM(QTD), vendas.* FROM vendas
INNER JOIN cfop ON (vendas.CFOP = cfop.CFOP AND cfop.DESCRICAO LIKE 'VEND%')
WHERE vendas.REFERENCIA = '16911' AND YEAR(vendas.DT_EMISSAO) = 2010 AND MONTH(vendas.DT_EMISSAO) = 1
GROUP BY EMPRESA
Carregando comentários...