Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2011, 07:39
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Busqueda Respuesta: Consulta en Ms-Sql

una alternativa..

Código:
SELECT cod_padre
       , padre
       , ISNULL([1],'') hijo1
       , ISNULL([2],'') hijo1
       , ISNULL([3],'') hijo3
       , ISNULL([4],'') hijo4
       , ISNULL([5],'') hijo5
FROM (    
        SELECT  p.cod_padre,
                (p.nombre + ' ' + p.apellido) as Padre,
                a.nombre hijo, 
                ROW_NUMBER() OVER (PARTITION BY p.cod_padre
                                   ORDER BY  a.fecha_nac ) idhijo
        FROM padre p
        inner join alu a
        on p.cod_padre = a.cod_padre
      ) p    
PIVOT (    
        MIN (hijo)    
        FOR idhijo IN ([1], [2], [3],[4], [5] )    
      ) AS pvt    
    
order by cod_padre

Código:
Resultado:

cod_padre   padre         hijo1         hijo1         hijo3        hijo4  hijo5
----------- --------------------------- ------------- ------------ ------ ------
1001        Juan Perez    Rosa Perez    Carlos Perez  Pedro Perez         
1002        Urias Torres  Jose Torres   Rosa Torres                       
1003        Jaime Vasquez Maria Vasquez Juan Vasquez                      
1004        Luis Mercado  Olga Mercado                                          

(4 row(s) affected)
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 01/06/2011 a las 07:48 Razón: resultados...