Oi, Jessica! Como você está?
No primeiro caso, para encontrar o cliente que mais comprou, nós podemos organizar o resultado em ordem decrescente, usando ORDER BY
, e selecionar o primeiro registro, a partir da cláusula TOP 1
. Abaixo trago um exemplo de consulta:
SELECT TOP 1 TC.NOME, (SUM(INF.QUANTIDADE * INF.PRECO)) AS TOTAL_COMPRA
FROM TABELA_DE_CLIENTES TC
INNER JOIN NOTAS_FISCAIS NF ON TC.CPF = NF.CPF
INNER JOIN ITENS_NOTAS_FISCAIS INF ON INF.NUMERO = NF.NUMERO
GROUP BY TC.NOME
ORDER BY TOTAL_COMPRA DESC;
No segundo caso, para encontrar o produto que mais vendeu, podemos fazer algo semelhante à situação anterior, ordenando o resultado em ordem decrescente e selecionando o primeiro registro:
SELECT TOP 1 TB.NOME_DO_PRODUTO , INF.CODIGO_DO_PRODUTO, (SUM(INF.QUANTIDADE * INF.PRECO)) AS TOTAL
FROM TABELA_DE_PRODUTOS TB
INNER JOIN ITENS_NOTAS_FISCAIS INF ON INF.CODIGO_DO_PRODUTO = TB.CODIGO_DO_PRODUTO
GROUP BY TB.NOME_DO_PRODUTO, INF.CODIGO_DO_PRODUTO
ORDER BY TOTAL DESC;
Como estamos buscando apenas o cliente que mais comprou e o produto que mais foi vendido, devemos adicionar o número 1 ao TOP
— limitando, assim, a apresentação das informações.
Espero ter ajudado com suas questões, Jessica. Caso surjam novas dúvidas, fico à disposição para ajudá-la.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!