Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/03/2010, 08:21
Avatar de 8vio
8vio
 
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Copiar data al costado dado un código único

En este post:

http://www.forosdelweb.com/f100/func...record-783668/

Hay una función creada por mi, creala tal cual en tu bd. Se llama gettoken (No te la coloque aqui para no andar repitiendo el post).

Una vez compilada en tu bd, podras hacer esto

Código:
SELECT
   codigo, 
   gettoken(rtrim (xmlagg (xmlelement (e,codigo_dep || ',')).extract ('//text()'), ','),1,',') cod_dept1 ,
   gettoken(rtrim (xmlagg (xmlelement (e, telefono || ',')).extract ('//text()'), ','),1,',') telefono1, 
   gettoken(rtrim (xmlagg (xmlelement (e,codigo_dep || ',')).extract ('//text()'), ','),2,',') cod_dept2 ,
   gettoken(rtrim (xmlagg (xmlelement (e, telefono || ',')).extract ('//text()'), ','),2,',') telefono2 ,
   gettoken(rtrim (xmlagg (xmlelement (e,codigo_dep || ',')).extract ('//text()'), ','),3,',') cod_dept3 ,
   gettoken(rtrim (xmlagg (xmlelement (e, telefono || ',')).extract ('//text()'), ','),3,',') telefono3    
FROM   x
GROUP BY  codigo

Y eso te va a retornar los datos exactamente como quieres.

La gettoken sirve para manejar strings y conseguir datos especificos segun un delimitador, en este caso hablamos de una coma (,).

El resultado seria este:

Código:
CODIGO	COD_DEPT1	TELEFONO1	COD_DEPT2	TELEFONO2	COD_DEPT3	TELEFONO3
1	    3	          3333	           2	          2222	            1	           1111
2	    5	          5555	           4	          4444
Lo podrias ordenar y manejarlo como quieras.

Saludos y espero que te sirva

PD. Se acepta karma