Ir para conteúdo

POWERED BY:

Arquivado

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

Vanderluce

Unir colunas na mesma linha

Recommended Posts

Olá,

 

Estou realizando uma consulta e a mesma esta me traz 2 informações em linhas diferentes e que preciso que apareçam na mesma linha:

 

select atendime.cd_prestador       codigo_prestador,
      prestador.nm_prestador      nome_prestador,
      atendime.cd_tip_mar         codigo_tipo_consulta,
      tip_mar.ds_tip_mar          descrição_tipo_consulta,
      ser_dis.ds_ser_dis          descrição_especialidade,
      atendime.cd_ori_ate         codigo_origem,
      ori_ate.ds_ori_ate          descrição_origem,
      count (atendime.cd_tip_mar) as total_atendimento
from   atendime,
      tip_mar,
      prestador,
      ori_ate ,
      ser_dis
where  tip_mar.cd_tip_mar    = atendime.cd_tip_mar (+) and
      atendime.cd_prestador = prestador.cd_prestador  and
      atendime.cd_ori_ate   = ori_ate.cd_ori_ate      AND
      ser_dis.cd_ser_dis    = atendime.cd_ser_dis AND
      trunc(atendime.dt_atendimento) between nvl(to_date('01/04/2011','dd/mm/yyyy'),trunc(sysdate)) and nvl(to_date('30/04/2011','dd/mm/yyyy'),trunc(sysdate)) and
      atendime.cd_tip_mar IN(1,2)    AND
      ORI_ATE.CD_ORI_ATE = 2 AND
      ser_dis.cd_ser_dis IN (227,211,210,208,206,205,204,203,202,200,32,52)and
      atendime.cd_atendimento_pai is null
group by (atendime.cd_prestador ,prestador.nm_prestador, atendime.cd_tip_mar, ds_tip_mar, atendime.cd_ori_ate, ori_ate.ds_ori_ate,ser_dis.ds_ser_dis)
      order by  DESCRIÇÃO_ESPECIALIDADE

 

Resultado: 
Cod	Prestador	      Tip_mar	Desc	                Espe	       Qtde		
4536	QUELI SANTANA DO CARMO	1	PRIMEIRA CONSULTA	FISIOTERAPIA	8		
4536	QUELI SANTANA DO CARMO	2	CONSULTA DE RETORNO	FISIOTERAPIA	66

 

Resultado que espero: 
Cod	Prestador	      Tip_mar   Tip_mar	Desc	            Desc                Espe	       Qtde  Qtde
4536	QUELI SANTANA DO CARMO	1	  2     PRIMEIRA CONSULTA   CONSULTA DE RETORNO	FISIOTERAPIA	8    66

Aguardo retorno

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar sub-query para trazer o dado para você,

 

select atendime.cd_prestador codigo_prestador,

prestador.nm_prestador nome_prestador,

(select atendime1.cd_tip_mar from atendime antedime1 where atendime1.cd_tip_mar = 1 and atendime1.cd_prestador = prestador.cd_prestador) codd_tipo_1,

(select atendime2.cd_tip_mar from atendime antedime2 where atendime2.cd_tip_mar = 2 and atendime2.cd_prestador = prestador.cd_prestador) cod_tipo_2,

(select tip_mar1.ds_tip_mar from tip_mar1 where tip_mar1 = 'blabla') as tipo_1,

(select tip_mar2.ds_tip_mar from tip_mar2 where tip_mar1 = 'blabla') as tipo_2,

ser_dis.ds_ser_dis descrição_especialidade,

atendime.cd_ori_ate codigo_origem,

ori_ate.ds_ori_ate descrição_origem,

count (atendime.cd_tip_mar) as total_atendimento

from atendime,

tip_mar,

prestador,

ori_ate ,

ser_dis

where tip_mar.cd_tip_mar = atendime.cd_tip_mar (+) and

atendime.cd_prestador = prestador.cd_prestador and

atendime.cd_ori_ate = ori_ate.cd_ori_ate AND

ser_dis.cd_ser_dis = atendime.cd_ser_dis AND

trunc(atendime.dt_atendimento) between nvl(to_date('01/04/2011','dd/mm/yyyy'),trunc(sysdate)) and nvl(to_date('30/04/2011','dd/mm/yyyy'),trunc(sysdate)) and

atendime.cd_tip_mar IN(1,2) AND

ORI_ATE.CD_ORI_ATE = 2 AND

ser_dis.cd_ser_dis IN (227,211,210,208,206,205,204,203,202,200,32,52)and

atendime.cd_atendimento_pai is null

group by (atendime.cd_prestador ,prestador.nm_prestador, atendime.cd_tip_mar, ds_tip_mar, atendime.cd_ori_ate, ori_ate.ds_ori_ate,ser_dis.ds_ser_dis)

order by DESCRIÇÃO_ESPECIALIDADE

 

 

pois da forma que esta, não dara certo pois, voce esta agrupando uma coluna que pode ter mais de um tipo de informação.

 

ow você pode utilizar PL/SQL para poder resolver, acredito que seja melhor pela performance em relação a sub-query.

 

Espero ter ajudado

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.