SUBCONSULTA TRÁS RESULTADO DIFERENT COM AGREGAÇ

 Tópico anterior Próximo tópico Novo tópico

SUBCONSULTA TRÁS RESULTADO DIFERENT COM AGREGAÇ

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#496050 - 13/01/2021 13:39:12

WEBIER
URUCUI
Cadast. em:Dezembro/2003


Boa tarde pessoal,

Tenho duas consultas que trabalham perfeitamente separadas, porem preciso exibir num grid informações das duas consultas.

Preciso pegar todos as entradas de um produto e colocar numa coluna e em outra coluna as saídas...

Fiz a assim:

SELECT     CODIGO, DESCRICAO,
                          (SELECT     SUM(Produtos_Quant.QUANT) AS Expr1
                            FROM          Produtos_Quant INNER JOIN
                                                   produtos AS A ON Produtos_Quant.COD_PRODUTO = C.CODIGO
                            WHERE      (Produtos_Quant.TIPO <> 'REMOÇÃO')
                            GROUP BY Produtos_Quant.COD_PRODUTO) AS vEntradas,
                          (SELECT     SUM(pedidos_itens.QUANTIDADE) AS Expr1
                            FROM          pedidos_itens INNER JOIN
                                                   produtos AS B ON pedidos_itens.COD_PRODUTO = C.CODIGO INNER JOIN
                                                   pedidos ON pedidos_itens.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos_itens.cancelado = 0) AND (pedidos.TIPO_PEDIDO <> 'ORÇAMENTO')
                            GROUP BY pedidos_itens.COD_PRODUTO) AS vSaidas
FROM         produtos AS C



Não dar erro não... porem o resultado sai errado.

Exemplo:

Fazendo a consulta separada o produto REPELEX possui 13 entradas e 12 saídas

Agora fazendo dessa forma ai o mesmo produto tem 76608 entradas e 82992 saídas

Preciso colocar em cada linha um produto com suas entradas e saídas (soma).

Onde estou errando?





Resposta escolhida #496052 - 13/01/2021 15:41:15

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


Última edição em 13/01/2021 15:41:37 por LUIS2014

seu problema é igual desse tópico, só seguir a mesma lógica.
https://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=496032&pagina=1




#496054 - 14/01/2021 00:54:31

WEBIER
URUCUI
Cadast. em:Dezembro/2003


Citação:
:
seu problema é igual desse tópico, só seguir a mesma lógica.
https://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=496032&pagina=1


Amigo, sobre o union acredito que não vai dar certo para o que quero..

Hoje fazendo uns testes, cheguei nesse ponto:
SELECT     CODIGO, DESCRICAO,
                          (SELECT     SUM(Produtos_Quant.QUANT) AS Expr1
                            FROM          Produtos_Quant INNER JOIN
                                                   produtos AS A ON Produtos_Quant.COD_PRODUTO = C.CODIGO
                            WHERE      (Produtos_Quant.TIPO <> 'REMOÇÃO')
                            GROUP BY Produtos_Quant.COD_PRODUTO) AS vEntradas,
                          (SELECT     SUM(pedidos_itens.QUANTIDADE) AS Expr1
                            FROM          pedidos_itens INNER JOIN
                                                   produtos AS B ON pedidos_itens.COD_PRODUTO = C.CODIGO INNER JOIN
                                                   pedidos ON pedidos_itens.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos_itens.cancelado = 0) AND (pedidos.TIPO_PEDIDO <> 'ORÇAMENTO')
                            GROUP BY pedidos_itens.COD_PRODUTO) AS vSaidas
FROM         produtos AS C


Sendo que o vSaidas está mostrando a quantidade certinho e o vEntradas mostrando o valor errado (numero bem grande).

Onde pode ser o erro?



#496058 - 14/01/2021 09:58:52

WEBIER
URUCUI
Cadast. em:Dezembro/2003


Conseguir resolver assim:
SELECT     CODIGO, DESCRICAO,
                          (SELECT     SUM(QUANT) AS Expr1
                            FROM          Produtos_Quant
                            WHERE      (COD_PRODUTO = C.CODIGO) AND (TIPO <> 'REMOÇÃO')) AS vEntradas,
                          (SELECT     SUM(pedidos_itens.QUANTIDADE) AS Expr1
                            FROM          pedidos_itens INNER JOIN
                                                   pedidos ON pedidos_itens.COD_PEDIDO = pedidos.COD_PEDIDO
                            WHERE      (pedidos_itens.cancelado = 0) AND (pedidos.TIPO_PEDIDO <> 'ORÇAMENTO') AND (pedidos_itens.COD_PRODUTO = C.CODIGO)) AS vSaidas,
                      QUANT_ESTOQUE
FROM         produtos AS C




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WEBIER em 14/01/2021 09:59:13