Funcao In ou Like
07/04/2022
0
Estou dificuldade em resolver uma consulta que até o momento eu ainda não tinha passado por esta situação.
Tenho um campo ZB1.ZB1_FILATI que possui vários informações separadas por barra conforme o exemplo abaixo.
16/30/40/46/51/52/60/70/72/73
Então preciso fazer com que outra tabela SE2.E2_FILIAL verifique se existe o código dentro da ZB1_FILATI
Segue abaixo a Query
SELECT
ZB1.ZB1_CONTA,
Cast(SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS Numeric(15,2) ) AS VALOR
FROM
ZB1010 ZB1(NOLOCK)
,SE2010 SE2(NOLOCK)
WHERE
1=1
AND ZB1.D_E_L_E_T_=''
AND SE2.D_E_L_E_T_=''
AND ZB1.ZB1_GRUPO='I1'
AND SE2.E2_BAIXA BETWEEN '20220301' AND '20220331'
AND SE2.E2_NATUREZ = ZB1.ZB1_CODNAT
AND SE2.E2_FILIAL IN ZB1.ZB1_FILATI
GROUP BY ZB1.ZB1_CONTA
Wanderson Fernandes
Posts
07/04/2022
Emerson Nascimento
SELECT ZB1.ZB1_CONTA, Cast(SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS Numeric(15,2) ) AS VALOR FROM ZB1010 ZB1(NOLOCK) INNER JOIN SE2010 SE2(NOLOCK) ON SE2.D_E_L_E_T_= '' AND CHARINDEX(SE2.E2_FILIAL, ZB1.ZB1_FILATI) > 0 AND SE2.E2_NATUREZ = ZB1.ZB1_CODNAT WHERE ZB1.D_E_L_E_T_='' AND ZB1.ZB1_GRUPO = 'I1' AND SE2.E2_BAIXA BETWEEN '20220301' AND '20220331' GROUP BY ZB1.ZB1_CONTA
08/04/2022
Wanderson Fernandes
Obrigado pelo retorno más, este não deu certo.
SELECT ZB1.ZB1_CONTA, Cast(SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS Numeric(15,2) ) AS VALOR FROM ZB1010 ZB1(NOLOCK) INNER JOIN SE2010 SE2(NOLOCK) ON SE2.D_E_L_E_T_= '' AND CHARINDEX(SE2.E2_FILIAL, ZB1.ZB1_FILATI) > 0 AND SE2.E2_NATUREZ = ZB1.ZB1_CODNAT WHERE ZB1.D_E_L_E_T_='' AND ZB1.ZB1_GRUPO = 'I1' AND SE2.E2_BAIXA BETWEEN '20220301' AND '20220331' GROUP BY ZB1.ZB1_CONTA
08/04/2022
Emerson Nascimento
deu erro?
não apresentou nada?
apresentou dados errados?
08/04/2022
Wanderson Fernandes
deu erro?
não apresentou nada?
apresentou dados errados?
Desculpa,
Os dados Vieram errados e os valores repetidos para a mesma filial.
08/04/2022
Emerson Nascimento
teste assim:
SELECT ZB1.ZB1_CONTA, SE2.E2_FILIAL, Cast(SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS Numeric(15,2) ) AS VALOR FROM ZB1010 ZB1(NOLOCK) INNER JOIN SE2010 SE2(NOLOCK) ON SE2.D_E_L_E_T_= '' AND CHARINDEX(SE2.E2_FILIAL, ZB1.ZB1_FILATI) > 0 AND SE2.E2_NATUREZ = ZB1.ZB1_CODNAT WHERE ZB1.D_E_L_E_T_='' AND ZB1.ZB1_GRUPO = 'I1' AND SE2.E2_BAIXA BETWEEN '20220301' AND '20220331' GROUP BY ZB1.ZB1_CONTA, SE2.E2_FILIAL
13/04/2022
Wanderson Fernandes
teste assim:
SELECT ZB1.ZB1_CONTA, SE2.E2_FILIAL, Cast(SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS Numeric(15,2) ) AS VALOR FROM ZB1010 ZB1(NOLOCK) INNER JOIN SE2010 SE2(NOLOCK) ON SE2.D_E_L_E_T_= '' AND CHARINDEX(SE2.E2_FILIAL, ZB1.ZB1_FILATI) > 0 AND SE2.E2_NATUREZ = ZB1.ZB1_CODNAT WHERE ZB1.D_E_L_E_T_='' AND ZB1.ZB1_GRUPO = 'I1' AND SE2.E2_BAIXA BETWEEN '20220301' AND '20220331' GROUP BY ZB1.ZB1_CONTA, SE2.E2_FILIAL
Bom dia Emerson,
Mais uma vez muito obrigado pelo retorno, vou testar e te posiciono.
Clique aqui para fazer login e interagir na Comunidade :)