Página 1 de 1

TRATAMENTO DE CASE

Enviado: Ter, 27 Out 2020 5:06 pm
por braytnerb
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

Re: TRATAMENTO DE CASE

Enviado: Ter, 27 Out 2020 8:42 pm
por dr_gori
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 ?

Re: TRATAMENTO DE CASE

Enviado: Qua, 28 Out 2020 8:19 am
por braytnerb
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.

Re: TRATAMENTO DE CASE

Enviado: Qua, 28 Out 2020 2:51 pm
por dr_gori
Mas nesse caso vai retornar 2 linhas ?