Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Ajuda com query

Preciso obter os clientes que mais compraram em cada mês.

banco = https://ibb.co/30WR4zt

Estou empacado nessa query

SELECT C.NOME AS NOME,MONTH(N.DATA_EMISSAO) AS MES,COUNT(N.ID) AS TOTAL
FROM CLIENTE C
JOIN NOTA_FISCAL N ON N.ID_CLIENTE = C.ID
GROUP BY  C.NOME,MONTH(N.DATA_EMISSAO);
4 respostas

Oi Matheus tudo bem?

Primeiro você tem que criar um Select a partir da tabela produto_nota_fiscal pois é nela que estão listado todos os produtos.

Então fazer um join com nota_fiscal para pegar o id do cliente.

E depois fazer outro join com o cliente para pegar seu nome.

Depois faça um Select em cima disso tudo com Count(quantidade) agrupando pelo id do cliente e pelo mês.

Se não funcionar me passa os scripts de criação e insert dos dados das tabelas que testo aqui e te passo a consulta pronta.

Me atrapalhei um pouco nesse segundo select

scripts = https://pastebin.com/vVpKr5Hg

solução!
SELECT Y.NOME AS NOME,
Y.MES AS MES,
MAX(Y.TOTAL) AS TOTAL
FROM (
SELECT C.NOME AS NOME,
MONTH(N.DATA_EMISSAO) AS MES,
COUNT(N.ID) AS TOTAL
FROM CLIENTE C
JOIN NOTA_FISCAL N ON N.ID_CLIENTE = C.ID
GROUP BY C.ID,MES
ORDER BY MES,TOTAL DESC
) AS Y
GROUP BY MES;

Consegui o resultado com essa consulta

É isso aí Matheus!!! Continue assim e bons estudos!!!