Seleccionar dos líneas en una sola

28/08/2009 - 11:03 por DT | Informe spam
Hola a todos.
Tengo lo siguiente:

ID Fecha Tipo
1 09/09/01 A
1 09/10/05 B
2 09/10/08 C
3 09/05/01 B
3 09/07/02 C

Deseo obtener este resultado:
ID Fecha1 Tipo1 Fecha2 Tipo2
1 09/09/01 A 09/10/05 B
2 09/10/08 C
3 09/05/01 B 09/07/02 C

Considerando que el ID 2 solo tiene una fecha y que solo pueden haber dos
registros para cada ID.
Trabajo con SQL 2005
Muchas gracias de antemano.
 

Leer las respuestas

#1 Carlos Sacristan
28/08/2009 - 11:49 | Informe spam
Una posible solución:

; WITH prev AS (
SELECT ROW_NUMBER() OVER(PARTITION BY id ORDER BY tipo) AS rn
,id, fecha, tipo
FROM tuTabla
)
select t1.id, t1.fecha as fecha1, t1.tipo as tipo1, t2.fecha as fecha2,
t2.tipo as tipo2
from prev t1 left join prev t2 on t1.id = t2.id and t2.rn=2
where t1.rn=1

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba


"DT" wrote in message
news:
Hola a todos.
Tengo lo siguiente:

ID Fecha Tipo
1 09/09/01 A
1 09/10/05 B
2 09/10/08 C
3 09/05/01 B
3 09/07/02 C

Deseo obtener este resultado:
ID Fecha1 Tipo1 Fecha2 Tipo2
1 09/09/01 A 09/10/05 B
2 09/10/08 C
3 09/05/01 B 09/07/02 C

Considerando que el ID 2 solo tiene una fecha y que solo pueden haber dos
registros para cada ID.
Trabajo con SQL 2005
Muchas gracias de antemano.

Preguntas similares