Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/06/2011, 09:38
Avatar de websistems
websistems
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Consulta en Ms-Sql- alternativa al pivot

Lo he podido resolver de esta manera por si alguien le interesa.

Lo hice de esta manera.

SELECT CAST(RESULTADOS.COD_PADRE AS CHAR(5)) AS Cod_padre, cast(RESULTADOS.Padre as varchar(250)) as Padres, max(RESULTADOS.hijo1) as Hijo1,
max(RESULTADOS.GRADO1) as grado1,max(RESULTADOS.hijo2) as Hijo2,max(RESULTADOS.Grado2) as grado2,max(RESULTADOS.hijo3) as Hijo3,max(RESULTADOS.grado3) as Hijo3
FROM(
SELECT cod_padre
, padre
,HIJO1
,Grado1
,'' as HIJO2
,'' as Grado2
,'' as HIJO3
,'' as grado3
FROM (
SELECT p.cod_padre,
(p.nombre + ' ' + p.apellido) as Padre,
(a.nombre) AS HIJO1, (a.grado +''+ a.seccion) as GRADO1,
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
WHERE idhijo=1

UNION

SELECT cod_padre
, padre
,'' AS HIJO1
,'' AS Grado1
,HIJO2
,Grado2
,'' as HIJO3
,'' as grado3
FROM (
SELECT p.cod_padre,
(p.nombre + ' ' + p.apellido) as Padre,
(a.nombre) AS HIJO2, (a.grado +''+ a.seccion) as GRADO2,
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
WHERE idhijo=2

UNION
SELECT cod_padre
, padre
,'' AS HIJO1
,'' AS Grado1
,'' AS HIJO2
,'' AS Grado2
,HIJO3
,grado3
FROM (
SELECT p.cod_padre,
(p.nombre + ' ' + p.apellido) as Padre,
(a.nombre) AS HIJO3, (a.grado +''+ a.seccion) as GRADO3,
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
WHERE idhijo=3) AS RESULTADOS
GROUP BY RESULTADOS.cod_padre,RESULTADOS.Padre
order by cod_padre


Resultado:



soucionado