Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

mostrar los dos ultimos registros de cada ID

Estas en el tema de mostrar los dos ultimos registros de cada ID en el foro de SQL Server en Foros del Web. hola amigos tengo una duda que me sta sacando de onda,, quieor mostrar los dos ultimos registros de cada ID osea los dos con fechas ...
  #1 (permalink)  
Antiguo 09/10/2013, 15:41
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 8 años, 3 meses
Puntos: 2
mostrar los dos ultimos registros de cada ID

hola amigos tengo una duda que me sta sacando de onda,,
quieor mostrar los dos ultimos registros de cada ID osea los dos con fechas mas altas
mis datos

Cita:
DECLARE @H TABLE
(
Serie INT,
Actualizacion SMALLDATETIME
)
Cita:
insert into @H values (115, '07-10-2013')
insert into @H values (115, '08-10-2013')
insert into @H values (115, '09-10-2013')
--
insert into @H values (116, '10-10-2013')
insert into @H values (116, '11-10-2013')
insert into @H values (116, '12-10-2013')
me deberia de regresa
Cita:
115, '08-10-2013
115, '09-10-2013
116, '11-10-2013
116, '12-10-2013
espero alguien me ayude tengo esta consultas pero ningua me regresa lo ke pido

Código SQL:
Ver original
  1. SELECT TOP 2 serie, actualizacion FROM @H GROUP BY serie, actualizacion ORDER BY Actualizacion DESC
__________________
si siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 09/10/2013, 15:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.480
Antigüedad: 12 años, 3 meses
Puntos: 180
Respuesta: mostrar los dos ultimos registros de cada ID

En este caso, se obtienen los TRES primeros registros de la serie

Código SQL:
Ver original
  1. SELECT * FROM
  2. (
  3. SELECT a.folio,
  4.     a.fecha,
  5.     a.documento,
  6.     b.articulo,
  7.     b.descripcionarticulo,
  8.     b.precio,
  9.     ROW_NUMBER () OVER (PARTITION BY a.folio,
  10.                     a.fecha,
  11.                     a.documento,
  12.                     b.articulo,
  13.                     b.descripcionarticulo,
  14.                     b.precio ORDER BY a.folio,
  15.                     a.fecha,
  16.                     a.documento,
  17.                     b.articulo,
  18.                     b.descripcionarticulo, b.precio ASC) AS RN
  19. FROM entradaencabezado a, entradadetalle b
  20. ) t1 WHERE rn <=3
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 09/10/2013, 15:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 1 mes
Puntos: 774
Respuesta: mostrar los dos ultimos registros de cada ID

Código SQL:
Ver original
  1. DECLARE @H TABLE
  2. (
  3. Serie INT,
  4. Actualizacion SMALLDATETIME
  5. )
  6. --Cita:
  7. INSERT INTO @H VALUES (115, '07-10-2013')
  8. INSERT INTO @H VALUES (115, '08-10-2013')
  9. INSERT INTO @H VALUES (115, '09-10-2013')
  10. --
  11. INSERT INTO @H VALUES (116, '10-10-2013')
  12. INSERT INTO @H VALUES (116, '11-10-2013')
  13. INSERT INTO @H VALUES (116, '12-10-2013')
  14.  
  15. SELECT serie,actualizacion FROM(
  16. SELECT serie,actualizacion, ROW_NUMBER() OVER(partition BY serie ORDER BY actualizacion DESC) AS rn FROM @h
  17. ) t1 WHERE rn<=2
  18. ORDER BY actualizacion

Me gano la respuesta amigo iislas :P

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 09/10/2013, 16:38
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 8 años, 3 meses
Puntos: 2
Respuesta: mostrar los dos ultimos registros de cada ID

woooww! muchas gracias amigoss iislas Libras, realmente para mi si estba complicada
esa consultaa...
muchas gracias por su aporteee.. se los agradescoo :D
__________________
si siempre hay algo nuevo que aprender

Etiquetas: cada, fecha, insert, registro, registros, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.