TRATAMENTO DE CASE

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
braytnerb
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 16 Set 2020 8:34 am
Localização: Fortaleza

como faço para que o CASE em caso de registro com dois tipos de pagamento (credito e debito) ?
sempre que tiver dois tipos de pagamento sendo um deles credito ele tem que ser credito; exemplo: credito + debito = credito
alguém poderia me ajudar?


SELECT distinct
NR_SEQUENCIA nr,
CD_ESTABELECIMENTO,
cd_medico,
qtde,
x.nr_atendimento,
trunc(x.dt_entrada) DT_ITEM,
x.nm_medico,
x.nm_pessoa_fisica NM_PACIENTE,
x.ds_procedimento,
x.vl_repasse,

CASE
WHEN X.cartao = 'S' AND X.tipo = 'CREDITO' THEN 'CREDITO'
WHEN X.cartao = 'S' AND X.tipo = 'DEBITO' THEN 'DEBITO'
WHEN X.cartao = 'S' AND X.tipo = 'CREDITO' AND X.tipo = 'DEBITO' THEN 'CREDITO' --
ELSE 'N' END cartao,


FROM
(select distinct
tasy.obter_se_receb_cartao(b1.nr_sequencia) PAG_CARTAO,
CASE WHEN a1.NR_SEQ_FORMA_PAGTO IN (16,4,13,8) THEN 'CREDITO' WHEN a1.NR_SEQ_FORMA_PAGTO IN (7,10,1) THEN 'DEBITO' ELSE 'N' END TIPO
from tasy.titulo_receber d1,
tasy.titulo_receber_liq c1,
tasy.caixa_receb b1,
tasy.movto_cartao_cr a1
where a1.nr_seq_caixa_rec (+) = b1.nr_sequencia
and b1.nr_sequencia = c1.nr_seq_caixa_rec (+)
and c1.nr_titulo = d1.nr_titulo
-- and rownum = 1
and a1.DT_CANCELAMENTO is null
and d1.nr_atendimento = 2734447 and tasy.obter_se_receb_cartao(b1.nr_sequencia) = 'S'
) CARTAO


Imagem
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Eu não entendi o seguinte:

Selecionar tudo

AND X.tipo = 'CREDITO' AND X.tipo = 'DEBITO' 
Como que x.TIPO vai ser CREDITO e DEBITO ?
braytnerb
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 16 Set 2020 8:34 am
Localização: Fortaleza

dr_gori escreveu:
Ter, 27 Out 2020 8:42 pm
Eu não entendi o seguinte:

Selecionar tudo

AND X.tipo = 'CREDITO' AND X.tipo = 'DEBITO' 
Como que x.TIPO vai ser CREDITO e DEBITO ?
é esse o ponto onde estou com duvidas, justamente nessa linha, vai ter tipos de pagamentos em que vou ter que receber os dois tipos de pagamento debito e credito, não estou conseguindo fazer o case pra tratar isso.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Mas nesse caso vai retornar 2 linhas ?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 39 visitantes