Fórum sql- conferencia do estoque #134489

08/04/2010

0

Uso a seguinte slq para uma conferencia de estoque simplificada

  SQL = "SELECT DISTINCT A.ID_INSUMO," & _
        "((Select Sum(Quantidade)as Estoque_Entrada From Estoque_Entrada Where Estoque_Entrada.Cod_Insumo=A.ID_Insumo AND COD_FAZENDA=" & Identificador_fazenda & ") -(Select Sum(Quantidade) As Estoque_Saida From Estoque_Saida Where Estoque_Saida.Cod_Insumo=A.ID_Insumo AND COD_FAZENDA=" & Identificador_fazenda & "))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 AND COD_FAZENDA=" & Identificador_fazenda & ") as Estoque_Entrada," & _
        "(Select Sum(Quantidade) From Estoque_Saida Where Estoque_Saida.Cod_Insumo=A.ID_Insumo AND COD_FAZENDA=" & Identificador_fazenda & ") as Estoque_Saida " & _
        "FROM CAD_INSUMO A " & _
        "WHERE  TIPO IS NULL ORDER BY A.ID_INSUMO"


Eu preciso montar um relatorio que me liste uma conferencia não simplificada tipo:

produto    entrada     data          saida        data
feijao        10            12/04/10
feijao                                          8              01/05/ 10

Ja quebrei a cabeça e não consegui chegar a uma solução, alguem pode me ajudar?
Paulo Henrique

Paulo Henrique

Responder

Posts

08/04/2010

Emerson Nascimento

pode ser assim:


SELECT
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  SUM(EE.QUANTIDADE) ENTRADA,
  EE.DATA DATAENTRADA,
  0 SAIDA,
  NULL DATASAIDA
FROM CAD_INSUMO A
INNER JOIN Estoque_Entrada EE on EE.Cod_Insumo = A.ID_Insumo AND COD_FAZENDA = 1
WHERE TIPO IS NULL
GROUP BY
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  EE.DATA

UNION

SELECT
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  0 ENTRADA,
  NULL DATAENTRADA,
  SUM(ES.QUANTIDADE) SAIDA,
  ES.DATA DATASAIDA
FROM CAD_INSUMO A
INNER JOIN Estoque_Saida ES ES.Cod_Insumo = A.ID_Insumo AND COD_FAZENDA = 1
WHERE TIPO IS NULL
GROUP BY
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  ES.DATA

ORDER BY 1





ou assim:

SELECT
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  EE.DATA,
  SUM(EE.QUANTIDADE) ENTRADA,
  0 SAIDA
FROM CAD_INSUMO A
INNER JOIN Estoque_Entrada EE on EE.Cod_Insumo = A.ID_Insumo AND EE.COD_FAZENDA = 1
WHERE TIPO IS NULL
GROUP BY
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  EE.DATA

UNION

SELECT
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  ES.DATA,
  0 ENTRADA,
  SUM(ES.QUANTIDADE) SAIDA
FROM CAD_INSUMO A
INNER JOIN Estoque_Saida ES ES.Cod_Insumo = A.ID_Insumo AND ES.COD_FAZENDA = 1
WHERE TIPO IS NULL
GROUP BY
  A.ID_INSUMO,
  A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO,
  ES.DATA

ORDER BY 1, 5

Responder

Gostei + 0

09/04/2010

Paulo Henrique

Emerson da forma como você postou o codigo que você postou,pois tava dando um erro column unknou e, arrumei ele aqui e agora ta funcionando, podem a data de saida não esta retordando, o que pode estar acontecendo? segue o codigo que eu arrumei:

     SQL = " SELECT A.ID_INSUMO,A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO," & _
         " EE.DATA_ENTRADA,SUM(EE.QUANTIDADE) ENTRADA,0 SAIDA" & _
         " FROM CAD_INSUMO A" & _
         " INNER JOIN Estoque_Entrada EE on EE.Cod_Insumo = A.ID_Insumo AND EE.COD_FAZENDA = " & Identificador_fazenda & _
         " Where Tipo Is Null" & _
         " Group By" & _
         " A.ID_INSUMO,A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO, EE.DATA_ENTRADA" & _
         " Union " & _
         " SELECT A.ID_INSUMO,A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO," & _
         " ES.DATA_SAIDA,0 ENTRADA,SUM(ES.QUANTIDADE) SAIDA" & _
         " FROM CAD_INSUMO A" & _
         " INNER JOIN Estoque_Saida ES on ES.Cod_Insumo = A.ID_Insumo AND ES.COD_FAZENDA =" & Identificador_fazenda & _
         " Where Tipo Is Null" & _
         " Group By" & _
         " A.ID_INSUMO,A.NOME_COMERCIAL, A.ESTOQUE_MAXIMO, A.ESTOQUE_MINIMO, ES.DATA_SAIDA" & _
         " ORDER BY 1,5"
Responder

Gostei + 0

09/04/2010

Paulo Henrique

Eu dei bobeira aqui não prestando atenção no primeiro codigo que vc postou, funcionou perfeitamente. Muito obrigado.
Responder

Gostei + 0

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

Aceitar