Retorno de Dados
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
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
Curtidas 0
Respostas
Emerson Nascimento
06/09/2022
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
GOSTEI 0