Referência Cruzada no Oracle

Oracle

08/07/2005

Pessoal,

alguém poderia me dizer como faço referência cruzada no Oracle. Como os comandos TRANSFORM E PIVOT do Access?

Seria selecionar como colunas, os registros de uma tabela.

Desde já, obrigado!


Galodoido

Galodoido

Curtidas 0

Respostas

Tommahawk

Tommahawk

08/07/2005

Tem uma alternativa: imagine uma tabela onde você tem duas colunas: código e valor. Bem, então sua tabela seria algo assim:
Código       valor
--------       ------
     a1           20
     b2           50
     d5           90

   

mas você quer que cada código seja uma coluna, certo? Então você pode fazer isto:

select sum(decode(código,´a1´,valor,0)) "a1"
,        sum(decode(código,´b2´,valor,0)) "b2"
,        sum(decode(código,´d5´,valor,0)) "d5"
from tabela


Uma diferença entre este método e o transform pivot do acces é que, sempre que entrar um novo código, você terá que incluir uma linha com o sum(decode()) para ele. No transform pivot isto acontece dinamicamente, para cada nova linha é criada uma nova coluna, não é?

Agradeço a quem mostrar algo mais eficiente, só conheco este...


GOSTEI 0
Galodoido

Galodoido

08/07/2005

Justamente,

desta forma, minhas colunas ficariam estáticas. Não existe nenhuma forma de torna-la dinâmica... como a do Access?

Mais uma vez, obrigado!


GOSTEI 0
Motta

Motta

08/07/2005

já fiz isto montando a query dinamicamente no Delphi, trabalhoso paca.


GOSTEI 0
POSTAR