Perguntas Consultas Sql
- Wanderson
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 39
- Obrigados Recebidos: 0
3 anos 1 mês atrás #33163
por Wanderson
Consultas Sql foi criado por Wanderson
Bom dia Pessoal,
Estou precisando de vocês para corrigir um problema de query que não estou conseguindo achar uma solução que possa me atender. Estou ligando 2 tabelas SE2 e ZB1 porem tenho que fazer uma verificação quando o nome da conta for MATRIZ tenho que executar uma regra especifica para está conta caso contrario executa as demais.
Segue a query caso alguém possa me ajudar.
SELECT
ZB1.ZB1_CONTA
, SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS VAL_SAID
FROM
SE2010 SE2 WITH(NOLOCK)
, ZB1010 ZB1
WHERE
(
CASE
WHEN ZB1.ZB1_CONTA=‘MATRIZ‘
THEN ((E2_FILIAL IN (‘01‘)
AND E2_NATUREZ <> ‘605012‘)
OR (
E2_FILIAL IN (‘02‘)
AND E2_NATUREZ IN (‘504040‘
,‘504009‘
,‘504044‘)
)
)
END
),
AND E2_FILIAL IN(‘02‘) SE2.D_E_L_E_T_ = ‘ ‘
AND ZB1.D_E_L_E_T_ = ‘ ‘
AND ZB1.ZB1_FILATI LIKE(‘%‘+ SE2.E2_FILIAL + ‘%‘)
AND ZB1.ZB1_CODNAT = SE2.E2_NATUREZ
AND ZB1.ZB1_STATUS =‘A‘
AND SE2.E2_BAIXA BETWEEN ‘20210901‘ AND ‘20210930‘
GROUP BY
ZB1.ZB1_CONTA
ORDER BY
1
Estou precisando de vocês para corrigir um problema de query que não estou conseguindo achar uma solução que possa me atender. Estou ligando 2 tabelas SE2 e ZB1 porem tenho que fazer uma verificação quando o nome da conta for MATRIZ tenho que executar uma regra especifica para está conta caso contrario executa as demais.
Segue a query caso alguém possa me ajudar.
SELECT
ZB1.ZB1_CONTA
, SUM(SE2.E2_VALOR - SE2.E2_SDDECRE + SE2.E2_ACRESC - SE2.E2_DESCONT) AS VAL_SAID
FROM
SE2010 SE2 WITH(NOLOCK)
, ZB1010 ZB1
WHERE
(
CASE
WHEN ZB1.ZB1_CONTA=‘MATRIZ‘
THEN ((E2_FILIAL IN (‘01‘)
AND E2_NATUREZ <> ‘605012‘)
OR (
E2_FILIAL IN (‘02‘)
AND E2_NATUREZ IN (‘504040‘
,‘504009‘
,‘504044‘)
)
)
END
),
AND E2_FILIAL IN(‘02‘) SE2.D_E_L_E_T_ = ‘ ‘
AND ZB1.D_E_L_E_T_ = ‘ ‘
AND ZB1.ZB1_FILATI LIKE(‘%‘+ SE2.E2_FILIAL + ‘%‘)
AND ZB1.ZB1_CODNAT = SE2.E2_NATUREZ
AND ZB1.ZB1_STATUS =‘A‘
AND SE2.E2_BAIXA BETWEEN ‘20210901‘ AND ‘20210930‘
GROUP BY
ZB1.ZB1_CONTA
ORDER BY
1
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
3 anos 1 mês atrás #33182
por admin
Respondido por admin no tópico Consultas Sql
Tem um erro na query
AND E2_FILIAL IN(‘02‘) SE2.D_E_L_E_T_ = ‘ ‘
Falta um End
Mas retira este E2_FILIAL IN(‘02‘) aqui vc esta forçando apenas filial 02 independente da condição acima.
AND E2_FILIAL IN(‘02‘) SE2.D_E_L_E_T_ = ‘ ‘
Falta um End
Mas retira este E2_FILIAL IN(‘02‘) aqui vc esta forçando apenas filial 02 independente da condição acima.
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.110 segundos