LIMITE DE RESULTADO COM CROSS APPLY

SQL Server

12/05/2020

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

Curtidas 0
POSTAR