Agrupar linhas em colunas PL/SQL Oracle

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
lfigueira
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Sex, 19 Mar 2010 1:59 pm
Localização: Ferraz de Vasconcelos

Boa Tarde Prezados,

Tenho uma questão simples, que não estou conseguindo resolver:

Tenho o select:

Selecionar tudo

select per.perguntas_descricao, resp.respostas_descricao 
from tb_form_perguntas per, tb_form_respostas resp
where per.perguntas_id = resp.identificacao_id
order by per.perguntas_descricao
É gostaria e obter o agrupamento em colunas e não em linhas isto e possível?

Agradeço a ajuda de todos.

Leandro Figueira
dudu0566
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 74
Registrado em: Seg, 06 Ago 2007 3:59 pm
Localização: Campinas - SP
Eduardo Gomes

Não entendi direito seu problema. Tem como postar um exemplo de como você quer que seja a saída?

abs
tom
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Dom, 11 Jul 2004 8:45 pm
Localização: Guarulhos - SP

Vamos supor que você tenha algo assim na sua tabela de respostas:

Selecionar tudo

identificacao_id   respostas_descricao
------------------  ------------------------
          1             resposta A
          2             resposta B
          3             resposta C
          4             resposta D
e então, você deseja que sua consulta retorne algo do tipo:

Selecionar tudo

per_descricao       resp1                    resp2                   resp3
----------------    ------------             ------------            -------------
pergunta1           resposta A               resposta B              resposta C
pergunta2           NULL                     resposta B              resposta C
o seu select seria:

Selecionar tudo

select per.perguntas_descricao, 
max(decode(resp.identificacao_id,1,resp.respostas_descricao,null)) resp1
max(decode(resp.identificacao_id,2,resp.respostas_descricao,null)) resp2
max(decode(resp.identificacao_id,3,resp.respostas_descricao,null)) resp3
from tb_form_perguntas per, tb_form_respostas resp
where per.perguntas_id = resp.identificacao_id
group by per_perguntas_descricao
order by per.perguntas_descricao
Aqui nesse exemplo estamos considerando que a resposta 1 não está cadastrada para a segunda pergunta, por isso o retorno de NULL na segunda linha[quote][/quote]
Responder
  • Informação
  • Quem está online

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