SQL- CALCULO DE ESTOQUE

PAULOHSV 06/08/2013 19:40:01
#427116
Estava calculando um estoque com a seguinte sql

Citação:

SQL = [Ô]SELECT DISTINCT A.ID_INSUMO,[Ô] & _
[Ô]((Select Sum(Quantidade)as Estoque_Entrada From Estoque_Entrada Where Estoque_Entrada.Cod_Insumo=A.ID_Insumo) -(Select Sum(Quantidade) As Estoque_Saida From Estoque_Saida Where Estoque_Saida.Cod_Insumo=A.ID_Insumo))As Estoque,[Ô] & _
[Ô]A.NOME_COMERCIAL,A.ESTOQUE_MAXIMO,A.ESTOQUE_MINIMO, [Ô] & _
[Ô](Select Sum(Quantidade) From Estoque_Entrada Where Estoque_Entrada.Cod_Insumo=A.ID_Insumo) as Estoque_Entrada,[Ô] & _
[Ô](Select Sum(Quantidade) From Estoque_Saida Where Estoque_Saida.Cod_Insumo=A.ID_Insumo) as Estoque_Saida [Ô] & _
[Ô]FROM CAD_INSUMO A [Ô] & _
[Ô]WHERE TIPO IS NULL ORDER BY A.NOME_COMERCIAL



Porem agora que percebi que desta forma só aparece no calculo o produto que houve movimentação de entrada e saída.
Existem produtos que não tiveram saída ainda, ou que o estoque esteja zerado e os mesmos não aparecem. Ja tentei varias tentativas e não tive êxito. Alguém pode me ajudar?
F001E 07/08/2013 18:04:58
#427216
Resposta escolhida
Não aparece pq na sua SQL você esta fazendo 3 SubSelect seria melhor fazer com LEFT JOIN pois assim os produtos q estão na Saida ou não vão aparecer
é mais ou menos assim

SQL = [Ô][Ô]
SQL = SQL & [Ô] SELECT DISTINCT A.ID_INSUMO,SUM(B.QUANTIDADE) AS ESTOQUE_ENTRADA,SUM(C.QUANTIDADE) AS ESTOQUE_SAIDA,
SQL = SQL & [Ô] SUM(B.QUANTIDADE) - SUM(C.QUANTIDADE) AS ESTOQUE,
SQL = SQL & [Ô] A.NOME_COMERCIAL,A.ESTOQUE_MAXIMO,A.ESTOQUE_MINIMO
SQL = SQL & [Ô] FROM CAD_INSUMOS A
SQL = SQL & [Ô] LEFT JOIN ESTOQUE_ENTRADA B
SQL = SQL & [Ô] ON B.COD_INSUMO = A.ID_INSUMO
SQL = SQL & [Ô] LEFT JOIN ESTOQUE_SAIDA C
SQL = SQL & [Ô] ON C.COD_INSUMO = A.ID_INSUMO
SQL = SQL & [Ô] WHERE TIPO IS NULL
SQL = SQL & [Ô] GROUP BY A.ID_INSUMO,A.NOME_COMERCIAL,A.ESTOQUE_MAXIMO,A.ESTOQUE_MINIMO
SQL = SQL & [Ô] ORDER BY A.NOME_COMERCIAL
Tópico encerrado , respostas não são mais permitidas