Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Fiz de outra maneira, e obtive um resultado diferente.

O resultado que obtive com o código abaixo foi bem maior, foram 14 linhas retornadas, mas não entendi o motivo. Alguém saberia explicar?

SELECT CPF, COUNT(*) FROM notas_fiscais AS N
INNER JOIN itens_notas_fiscais AS I
ON N.NUMERO = I.NUMERO
WHERE YEAR(DATA_VENDA) = 2016
GROUP BY CPF HAVING COUNT(*) > 2000
ORDER BY N.CPF DESC;

Obrigado.

1 resposta
solução!

Olá, Filipe!

Pelo que percebo, seu código SQL está corretamente estruturado para responder à pergunta da atividade: "Quais foram os clientes que fizeram mais de 2000 compras em 2016?".

No entanto, você mencionou que o resultado obtido foi de 14 linhas, o que indica que 14 clientes fizeram mais de 2000 compras em 2016, segundo sua base de dados.

Se você esperava um número diferente de linhas, pode ser que haja alguma discrepância nos dados ou talvez uma interpretação diferente da pergunta. Por exemplo, se por "compras" entendermos "notas fiscais", então cada linha na tabela "notas_fiscais" representaria uma compra. No entanto, se por "compras" entendermos "itens comprados", então cada linha na tabela "itens_notas_fiscais" representaria um item comprado, e uma única nota fiscal poderia conter vários itens.

Seu código atual está contando o número de notas fiscais (ou seja, "compras" no primeiro sentido) por CPF. Se o que você quer é o número de itens comprados (ou seja, "compras" no segundo sentido), você precisaria modificar seu código para contar as linhas da tabela "itens_notas_fiscais" em vez das linhas da tabela "notas_fiscais".

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software