Fórum Retorno de Dados #618674
06/09/2022
0
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
Curtir tópico
+ 0
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)