Resultado na mesma linha

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

Bom dia Pessoal,

Preciso saber como trazer um resultado na mesma linha ex:

EXEMPLO 1: RESULTADO ATUAL

Selecionar tudo

GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 5 ML - SORO  	11/6/2012	7	CR    	 	485762	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 5 ML - SORO  	11/6/2012	7	DHL   	 	485762	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 5 ML - SORO  	11/6/2012	7	FAL   	 	485762	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 5 ML - SORO  	11/6/2012	7	GGT   	 	485762	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO TAMPA ROXA - EDTA        	11/6/2012	8	HG    	 	485763	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO TAMPA ROXA - EDTA        	11/6/2012	8	PLA   	 	485763	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 10 ML - SORO 	11/6/2012	16	B2MIC 	 	485764	
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 10 ML - SORO 	11/6/2012	16	CA125 	 	485764	
--------------------------------------------------------------------------------------------

EXEMPLO 2: COMO TEVERIA FICAR

Selecionar tudo

GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 5 ML - SORO  	11/6/2012	7	CR    ,	DHL   ,	FAL  , 	GGT   
GUINAR DA SILVA CAPELINE 	199839	2	TUBO TAMPA ROXA - EDTA        	11/6/2012	8	HG  ,  	PLA   		
GUINAR DA SILVA CAPELINE 	199839	2	TUBO T. VERMELHA 10 ML - SORO 	11/6/2012	16	B2MIC , 	CA125 		


OBS: O resultado na mesma linha é -----X.nm_mnemonico---
-----------------------------------------------------------------------------------
QUERY

Selecionar tudo

select 
 distinct
c.nm_paciente
,p.cd_ped_lab
,i.cd_set_exa
,t.ds_tubo_coleta 
,TRUNC (p.dt_pedido) dt_pedido
, e.cd_bancada
,X.nm_mnemonico
,L.ds_leito
, r.cd_amostra cd_bancada
from 
ped_lab p, itped_lab i, set_exa s, tubo_coleta t, atendime a ,paciente c, exa_lab x, EXA_LAB_SET_EXA e, LEITO L,AMOSTRA_EXA_LAB r
where i.cd_ped_lab = p.cd_ped_lab 
and p.cd_ped_lab = 199839
and s.cd_set_exa (+)= i.cd_set_exa  
and i.cd_tubo_coleta = t.cd_tubo_coleta (+) 
and a.cd_atendimento = p.cd_atendimento (+) 
and c.cd_paciente = a.cd_paciente
and x.cd_exa_lab (+) = i.cd_exa_lab
and e.cd_exa_lab= x.cd_exa_lab 
AND E.cd_set_exa (+)= S.cd_set_exa
AND L.cd_leito (+) = A.cd_leito
and r.cd_itped_lab(+) = i.cd_itped_lab
order by  e.cd_bancada,X.nm_mnemonico
Obrigado a todos.
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Se usa oracle 11 pode fazer:

Selecionar tudo

select
   deptno,
   listagg (ename, ',')
WITHIN GROUP
(ORDER BY ename) enames
FROM
   emp
GROUP BY
   deptno
/ 
    DEPTNO ENAMES                                           
---------- --------------------------------------------------
        10 CLARK,KING,MILLER                                
        20 ADAMS,FORD,JONES,SCOTT,SMITH                
        30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD 

http://www.dba-oracle.com/t_display_mul ... e_rows.htm
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

Sim uso o 11 g, so que não roudou.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá p43lo,

Com certeza,

Selecionar tudo

GUINAR DA SILVA CAPELINE 199839 2 TUBO T. VERMELHA 5 ML - SORO 11/6/2012 7 CR 485762
não significa um único registro.

Seria possível você separar o conteudo desta linha pelas colunas descritas na sua querie (ex: c.nm_paciente=GUINAR DA SILVA CAPELINE)?

Visualmente, ficaria mais fácil para os foristas identificarem os dados da string com suas colunas e sugerirem uma querie que ajude você a resolver o problema.

Abraços,

Sergio Coutinho
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

Puts, complicou......
Avatar do usuário
jessica.ff
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 61
Registrado em: Seg, 11 Jun 2007 2:28 pm
Localização: Gravataí - RS
ninguém é tão sabio que não tenha a aprender, e nem tão ignorante que não tenha a ensinar.

Isso deve ajudar, espero que consiga entender:

Selecionar tudo

select b.campo_Z, b.campo_B
               substr(max(replace(sys_connect_by_path(B.campo_concatena, '|'),
                                  '|',
                                  '; ')),
                      3) campo_conc
          from (select tab3.campo_A, tab3.campo_B, tab3.campo_C, tab3.campo_concatena
                        row_number() over(partition by tab3.campo_A order by tab3.campo_A, tab3.campo_concatena) row#
                  from TABELA_3 tab3
                 WHERE 1 = 1
                   AND tab3.campo_ABC NOT IN
                       (select distinct campo_A
                          from tabela1 tab1
                          join tabela2 tab2
                            on tab1.Id = tab2.id
                         where tab1.id = 36)) B
         start with row# = 1
        connect by prior campo_A = campo_A
               and prior row# = row# - 1

         group by  b.campo_Z, campo_B
Avatar do usuário
jessica.ff
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 61
Registrado em: Seg, 11 Jun 2007 2:28 pm
Localização: Gravataí - RS
ninguém é tão sabio que não tenha a aprender, e nem tão ignorante que não tenha a ensinar.

Pablo,

Esse links tambem pode ajudar:

http://glufke.net/oracle/viewtopic.php? ... +by#p13206



Abraços,
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

CARA TENTEI COLOCAR A QUERY NA MINHA BASE .. AFF FIQUEI MEIO CONFUSO. MAS VENDO O LINK ME AJUDOU POREM AINDA não SAIU COMO DEVERIA.
Responder
  • Informação
  • Quem está online

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