LIMITE DE RESULTADO COM CROSS APPLY

12/05/2020

0

Boa tarde,

Estou iniciando em SQL Server, e preciso realizar uma consulta que me traga no máximo os 3 itens mais vendidos por nota de cada cliente de um determinado período.
Estou usando Max(data) para trazer a ultima nota faturada de cada cliente, porém a consulta esta trazendo mais de um resultado.
Esta é a consulta:

SELECT NFSCB.Num_nota,
CLIEN.Razao_Social,
MAX(NFSCB.Dat_Emissao) AS DATA,
Produto.Descricao,
Produto.Qtd,
Produto.Sta_AbcUniVen
FROM NFSCB
cross apply (SELECT TOP 3 N1.Cod_Produto,
PRODU.Descricao,
SUM(N1.Qtd_Produto) as Qtd,
PRODU.Sta_AbcUniVen
FROM NFSIT N1
inner join PRODU on N1.Cod_Produto=PRODU.Codigo
where N1.Num_Nota=NFSCB.Num_Nota
group by N1.Cod_Produto,
PRODU.Descricao,
PRODU.Sta_AbcUniVen
order by PRODU.Sta_AbcUniVen) as Produto
INNER JOIN CLIEN ON NFSCB.Cod_Cliente=CLIEN.Codigo
WHERE NFSCB.Dat_Emissao BETWEEN '20191101' AND '20191130'
GROUP BY NFSCB.Num_nota,
CLIEN.Razao_Social,
Produto.Descricao,
Produto.Qtd,
Produto.Sta_AbcUniVen
ORDER BY CLIEN.Razao_Social,
NFSCB.Num_Nota

O que pode estar errado e trazendo mais de um resultado?
Mozart Ponntes

Mozart Ponntes

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar