sub select incremento

SQL Server

SQL

Delphi

ADO

Firebird

28/08/2019

Bom dia!
Fiz um sub select para somar: O 1° select some todas entradas, e no 2° select some as saídas. O problema é que se o código não tiver nenhuma saída, ele não aparece na consulta. Ela só funciona se os 2 critérios conterem valores a serem apresentados. Aguem sabe como posso adaptar para que no caso de não haver saída, pelo menos aparecer o codigo com a soma de entras, deixando a compo saída em branco ou valor 0.

SELECT A.CODIGO, A.PARTNUMBER, A.DESCRICAO, A.QTDE_ENTRADA, B.QTDEPG, A.QTDE_ENTRADA - B.QTDEPG AS SAIDA
FROM
(SELECT CODIGO, PARTNUMBER, DESCRICAO, Sum(QTDE_ENTRADA) AS QTDE_ENTRADA FROM TB_ESTOQUE_ENTRADA GROUP BY CODIGO, PARTNUMBER, DESCRICAO) A,
(SELECT CODIGO, Sum(QTDEPG) AS QTDEPG FROM TB_ESTOQUE_SAIDA GROUP BY CODIGO) B
WHERE A.CODIGO = B.CODIGO
Daniel Antonio

Daniel Antonio

Curtidas 0

Respostas

Fernando Ito

Fernando Ito

28/08/2019

Olá Daniel Antonio,

Você tem que usar o coalesce na consulta

coalesce(A.QTDE_ENTRADA, 0) - coalesce(B.QTDEPG, 0) as saida


Um abraço,
ITO
GOSTEI 0
Daniel Antonio

Daniel Antonio

28/08/2019

Coloquei o coalesce, e não funcionou..
Códigos que so tem entrada não aparecem na consulta


Olá Daniel Antonio,

Você tem que usar o coalesce na consulta

coalesce(A.QTDE_ENTRADA, 0) - coalesce(B.QTDEPG, 0) as saida


Um abraço,
ITO
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

28/08/2019

tente algo assim:
SELECT
	CODIGO, PARTNUMBER, DESCRICAO, SUM(QTDE) AS QTDE_ENTRADA, SUM(QTDS) AS QTDE_SAIDA
FROM
(
	SELECT CODIGO, PARTNUMBER, DESCRICAO, Sum(QTDE_ENTRADA) AS QTDE, 0 AS QTDS
	FROM TB_ESTOQUE_ENTRADA
	GROUP BY CODIGO, PARTNUMBER, DESCRICAO
	UNION ALL
	SELECT CODIGO, PARTNUMBER, DESCRICAO, 0 AS QTDE, Sum(QTDEPG) AS QTDS
	FROM TB_ESTOQUE_SAIDA
	GROUP BY CODIGO, PARTNUMBER, DESCRICAO
) A
GROUP BY CODIGO, PARTNUMBER, DESCRICAO
ORDER BY CODIGO

GOSTEI 0
Daniel Antonio

Daniel Antonio

28/08/2019

Obrigado - Deu certinho
tente algo assim:
SELECT
	CODIGO, PARTNUMBER, DESCRICAO, SUM(QTDE) AS QTDE_ENTRADA, SUM(QTDS) AS QTDE_SAIDA
FROM
(
	SELECT CODIGO, PARTNUMBER, DESCRICAO, Sum(QTDE_ENTRADA) AS QTDE, 0 AS QTDS
	FROM TB_ESTOQUE_ENTRADA
	GROUP BY CODIGO, PARTNUMBER, DESCRICAO
	UNION ALL
	SELECT CODIGO, PARTNUMBER, DESCRICAO, 0 AS QTDE, Sum(QTDEPG) AS QTDS
	FROM TB_ESTOQUE_SAIDA
	GROUP BY CODIGO, PARTNUMBER, DESCRICAO
) A
GROUP BY CODIGO, PARTNUMBER, DESCRICAO
ORDER BY CODIGO

GOSTEI 0
POSTAR