Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ikawa

Sum

Recommended Posts

select

a.cd_atendimento ATENDIMENTO,

a.dt_atendimento DT_ATEND,

p.nm_paciente NM_PACIENTE,

p.tp_sexo SEXO,

p.dt_nascimento DT_NASC,

co.nm_convenio CONVENIO,

co.nr_registro_operadora_ans ANS,

cid.ds_cid CID,

max(c.nr_carteira)Nr_CARTEIRA,

p.ds_endereco ENDERECO,

p.nr_cep CEP,

p.nm_bairro BAIRRO,

ci.nm_cidade CIDADE,

ci.cd_uf UF,

a.dt_alta ALTA,

ma.ds_mot_alt DS_ALTA,

a.nr_declaracao_obito OBITO,

sum(it.qt_lancamento)

 

 

 

 

from dbamv.atendime a join dbamv.paciente p

on (a.cd_paciente = p.cd_paciente)

join dbamv.carteira c

on (c.cd_paciente = a.cd_paciente)

join dbamv.convenio co

on (co.cd_convenio = a.cd_convenio)

join dbamv.cid cid

on (cid.cd_cid = a.cd_cid)

join dbamv.cidade ci

on (ci.cd_cidade = p.cd_cidade)

join dbamv.mot_alt ma

on (ma.cd_mot_alt = a.cd_mot_alt)

join dbamv.reg_fat r

on (r.cd_atendimento = a.cd_atendimento)

join dbamv.itreg_fat it

on (it.cd_reg_fat = r.cd_reg_fat)

/* join dbamv.pro_fat pf

on (pf.cd_pro_fat = it.cd_pro_fat) */

 

 

where a.cd_atendimento in ( select distinct a.cd_atendimento

from dbamv.atendime a join dbamv.carteira c

on (a.cd_paciente = c.cd_paciente)

where a.tp_atendimento = 'I'

and a.cd_multi_empresa = 1

group by a.cd_atendimento)

 

and a.dt_atendimento between to_date ('01-03-2011','dd-mm-yyyy') and to_date ('31-03-2011','dd-mm-yyyy') -- data somente para testes

 

and c.nr_carteira in ( select nr_carteira from dbamv.carteira

where dt_validade >= sysdate)

 

 

and it.cd_pro_fat in ( select cd_pro_fat from dbamv.itreg_fat

where cd_pro_fat in ( select cd_pro_fat from dbamv.pro_fat

where ds_pro_fat like '%DIARIA%UTI%'))

 

 

group by

a.cd_atendimento,

a.dt_atendimento,

p.nm_paciente,

p.tp_sexo,

p.dt_nascimento,

co.nm_convenio,

co.nr_registro_operadora_ans,

a.cd_pro_int,

cid.ds_cid,

p.ds_endereco,

p.nr_cep,

p.nm_bairro,

ci.nm_cidade,

ci.cd_uf,

a.dt_alta,

ma.ds_mot_alt,

a.nr_declaracao_obito

 

 

 

Pessoal bom dia.

 

Para que todos possam entender minha duvida, vou dar uma breve explicação.

 

Trabalho na área de saúde, e estou tentando fazer um select onde ele calcule o dia de diarias em UTI por paciente. O campo e a regra representada estão em vermelho. Porem não necessariamente todos os paciente tiveram permanência em UTI, o que acontece é que a select somente me retorna aqueles que tiveram em UTI.

Como posso fazer para os que tiveram permanência me retornar o valor, e aqueles que não tiveram permanência retornar um 0(zero).

Espero ter sido claro agradeço a todos. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Confesso que não li tudo... mas veja se é isso:

 

mude

sum(it.qt_lancamento) 

para

coalesce(sum(it.qt_lancamento), 0) 

?

 

 

x2... tambem nao li tudo. A maioria acho que nem vai ler :P

 

Ikawa,

Antes de fazer o SUM, altere o JOIN que contem o campo que quer somar para LEFT

from dbamv.atendime a join dbamv.paciente p
on (a.cd_paciente = p.cd_paciente)
join dbamv.carteira c
on (c.cd_paciente = a.cd_paciente)
join dbamv.convenio co
on (co.cd_convenio = a.cd_convenio)
join dbamv.cid cid
on (cid.cd_cid = a.cd_cid)
join dbamv.cidade ci
on (ci.cd_cidade = p.cd_cidade)
join dbamv.mot_alt ma
on (ma.cd_mot_alt = a.cd_mot_alt) 
join dbamv.reg_fat r
on (r.cd_atendimento = a.cd_atendimento)
join dbamv.itreg_fat it
on (it.cd_reg_fat = r.cd_reg_fat)
/* join dbamv.pro_fat pf
on (pf.cd_pro_fat = it.cd_pro_fat) */

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.