Usuário com melhor resposta
Consulta Invertida

Pergunta
-
Olá pessoal, gostaria de saber se tem como fazer isso com uma consulta.
Eu faço uma consulta que me retorna os seguintes dados:
COL1 COL2 COL3 COL4
1 TEXTO1 1
1 TEXTO1 1 5
1 TEXTO1 2 21
1 TEXTO1 3 42 TEXTO2 1 8
2 TEXTO2 3 12
...
Vejam que o Texto 1 aparece 4 vezes, que é o máximo de vezes que pode aparecer, ou seja, de 0 a 4 registros, pode ser que um "TEXTO8" não retorne nada.
Queria fazer um select em cima desse de forma que ele me trouxesse da seguinte forma:
(vazio) (1) (2) (3)
COL1 COL2 COL4 COL5 COL6 COL7
1 TEXTO1 1 5 21 4
2 TEXTO2 8 12Vejan que seria feito um distinct na COL2 e os dados da COL4 ele colocaria em linha de acordo com a COL3, a COL3 identificaria qual coluna o valor da COL4 iria ficar, acho que deu pra entender?
abraços ai feras,...isso ai ta me tomando um tempo já
Respostas
-
Boa tarde,
Experimente desta forma:
select Col1, Col2, max(case when Col3 is null then Col4 end) as Col4, max(case when Col3 = 1 then Col4 end) as Col5, max(case when Col3 = 2 then Col4 end) as Col6, max(case when Col3 = 3 then Col4 end) as Col7 from Tabela group by Col1, Col2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Apollo130 quinta-feira, 13 de dezembro de 2012 11:23
Todas as Respostas
-
Boa tarde,
Experimente desta forma:
select Col1, Col2, max(case when Col3 is null then Col4 end) as Col4, max(case when Col3 = 1 then Col4 end) as Col5, max(case when Col3 = 2 then Col4 end) as Col6, max(case when Col3 = 3 then Col4 end) as Col7 from Tabela group by Col1, Col2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Apollo130 quinta-feira, 13 de dezembro de 2012 11:23
-