Distinct com SUM

12/12/2022

0


Boa tarde, tudo bem?
Tenho o script abaixo, preciso somar as entradas e saidas da movimentação de produtos, dentro de um período e que me mostre o fornecedor quando existir.
Até a somatória tudo certo, mas quando coloco o código do fornecedor, gera duas linhas de resultados para o mesmo produto. Deixei os comandos que fazem gerar duas linhas em comentário (--).

Obrigado



SELECT
dbo.fncFormataString(p.CodigoInterno,10,''''''''''''''''0'''''''''''''''') + '''''''''''''''' - '''''''''''''''' + p.Descricao as Produto,
IsNull(Totais.Entradas,0) as QuantidadeCompras,
IsNull(Totais.Saidas,0) as QuantidadeVendas,
p.Custo_Atual as ValorCusto,
p.Vlr_Venda as ValorVenda
--,COALESCE(f.Nome,f.RazaoSocial) as Fornecedor

FROM
(
SELECT
Distinct(CodProduto),
--Cod_Fornecedor,
SUM(CASE WHEN Condicao = ''''''''''''''''EC'''''''''''''''' or Condicao = ''''''''''''''''ES'''''''''''''''' THEN ISNULL(Qdade,0) ELSE 0 END) as Entradas,
SUM(CASE WHEN Condicao = ''''''''''''''''SV'''''''''''''''' or Condicao = ''''''''''''''''SS'''''''''''''''' or Condicao = ''''''''''''''''SN'''''''''''''''' THEN ISNULL(Qdade,0) ELSE 0 END) as Saidas
FROM
Movimento_Itens

WHERE
(Data Between ''''''''''''''''01-01-2022'''''''''''''''' and ''''''''''''''''31-12-2022'''''''''''''''')
--and
--Cod_Fornecedor =26

GROUP BY
CodProduto
-- ,Cod_Fornecedor


) Totais

inner join produtos p
on Totais.CodProduto = p.CodigoInterno

-- left join Fornecedores f
-- on Totais.Cod_Fornecedor = f.Codigo


order by
p.CodigoInterno,
p.Descricao
--COALESCE(f.Nome,f.RazaoSocial)
Joao Escudeiro

Joao Escudeiro

Responder

Posts

27/12/2022

Arthur Heinrich

É só remover o distinct. O group by se encarrega de trazer apenas uma linha por CodProduto
Responder

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

Aceitar