Referência Cruzada no Oracle
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!
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
Curtidas 0
Respostas
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:
mas você quer que cada código seja uma coluna, certo? Então você pode fazer isto:
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...
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
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!
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
08/07/2005
já fiz isto montando a query dinamicamente no Delphi, trabalhoso paca.
GOSTEI 0