Concatenar resultados

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
fernandomartini1984
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Sex, 04 Out 2013 9:41 am

Boa Tarde Pessoal,

Tenho a seguinte query:

Selecionar tudo

SELECT OBTER_NOME_DIETA (MD.CD_DIETA) DS_DIETA, MD.NR_ATENDIMENTO NR_ATEND
       FROM MAPA_DIETA MD,
         PRESCR_MEDICA PM,
         OCUPACAO_UNIDADE_V OU,
         ATENDIMENTO_PACIENTE AP
   WHERE     MD.NR_PRESCRICAO = PM.NR_PRESCRICAO
         AND AP.NR_ATENDIMENTO = OU.NR_ATENDIMENTO
         AND OU.NR_ATENDIMENTO = PM.NR_ATENDIMENTO
         AND OU.CD_SETOR_ATENDIMENTO = &P_SETOR
         AND AP.DT_ALTA IS NULL
         AND SYSDATE BETWEEN PM.DT_INICIO_PRESCR AND PM.DT_VALIDADE_PRESCR
         AND PM.DT_LIBERACAO_MEDICO IS NOT NULL
GROUP BY OBTER_NOME_DIETA (MD.CD_DIETA), MD.NR_ATENDIMENTO
ORDER BY 2 
Que traz como resultado:

Selecionar tudo

DS_DIETA.......................NR_ATEND
SNE..............................363221
SNE..............................416172
Liquidificada....................417083
Livre............................420584
SNE para DM hipossódica..........423053
SNE para hepatopata..............423053
NPO..............................423844
Percebam que nas linhas 5 e 6 o resultado da coluna NR_ATEND se repete (423053).
Preciso uma solução para Concatenar os resultados da coluna DS_DIETA quando NR_ATEND repetir.
Ficaria Assim:

Selecionar tudo

DS_DIETA................................................NR_ATEND
SNE.......................................................363221
SNE.......................................................416172
Liquidificada.............................................417083
Livre.....................................................420584
SNE para DM hipossódica, SNE para hepatopata..............423053  <---
NPO.......................................................423844

Poderiam ajudar?
Abraço!!
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

Fernando,

Se for Oracle 11G use a função LISTAGG. Se for 10G use a função WM_CONCAT. Pesquise aqui no fórum por estas funções que você deve encontrar algum exemplo.

[]s
fernandomartini1984
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Sex, 04 Out 2013 9:41 am

Grande fbifabio!!!

Muito obrigado!
Responder
  • Informação
  • Quem está online

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