Retorno de Dados

06/09/2022

0

SQL

Boa Tarde Pessoal,

Estou com uma consulta que não esta trazendo todos os dados que tenha na tabela de acordo com meu filtro, e gostaria se possivel da ajuda de voce.

Minha tabela ZB0 é uma tabela de movimentação e a tabela FLUXO_SALDOINICIAL são meus saldos, eu preciso que, na hora da consulta quando não existir a filial de origem no período selecionado ele me traga o saldo da filial mesmo sem movimentação pois o saldo existe e isso não está acontecendo nesta consulta, ele so está trazendo quando há movimentação.

Já usei Inner Joy, Left outer join right outer join e nada me traz o resultado esperado

Segue a consulta abaixo caso alguém possa me ajudar.

SELECT ZB0_FILORI
,CASE
WHEN ZB0_HISTOR = (''Transf. Ref:09/2022'')
THEN SUM(ZB0_VLTRAN)
ELSE 0
END AS VALTRANSF
,CASE
WHEN ZB0_HISTOR = (''Estorn. Ref:09/2022'')
THEN SUM(ZB0_VLTRAN)
ELSE 0
END AS VALESTOR
,VALOR AS SALDOINICIAL
,VALMOVIM AS VALMOVIMENTO
,VALDISPONIVEL AS VALDISPONIVEL
FROM ZB0010 ZB0
RIGHT JOIN FLUXO_SALDOINICIAL FLX ON FLX.DATA = ''20220901''
AND FLX.FILIAL = ZB0_FILORI
WHERE ZB0.D_E_L_E_T_ = ''''
AND ZB0_DATA >= ''20220901''
GROUP BY ZB0_FILORI
,ZB0_HISTOR
,VALOR
,VALDISPONIVEL
,VALMOVIM
Wanderson Fernandes

Wanderson Fernandes

Responder

Posts

08/09/2022

Emerson Nascimento

se a tabela FLUXO_SALDOINICIAL sempre terá dados, melhor usá-la como tabela principal da consulta.
SELECT
	FLX.FILIAL
	,SUM(CASE
			WHEN COALESCE(ZB0_HISTOR,'') = ('Transf. Ref:09/2022')
			THEN ZB0_VLTRAN
			ELSE 0
		END) AS VALTRANSF
	,SUM(CASE
			WHEN COALESCE(ZB0_HISTOR,'') = ('Estorn. Ref:09/2022')
			THEN ZB0_VLTRAN
			ELSE 0
		END) AS VALESTOR
	,VALOR AS SALDOINICIAL
	,VALMOVIM AS VALMOVIMENTO
	,VALDISPONIVEL AS VALDISPONIVEL
FROM
	FLUXO_SALDOINICIAL FLX
LEFT JOIN
	ZB0010 ZB0 ON
	ZB0.D_E_L_E_T_ = ''
	AND ZB0_FILORI = FLX.FILIAL
	AND ZB0_DATA >= FLX.DATA
WHERE
	FLX.DATA = '20220901'
GROUP BY
	FLX.FILIAL
	,ZB0_HISTOR
	,VALOR
	,VALDISPONIVEL
	,VALMOVIM


Responder

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

Aceitar