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

Obtener últimos registros de una union de tablas

Estas en el tema de Obtener últimos registros de una union de tablas en el foro de SQL Server en Foros del Web. Necesito obtener los últimos 3 registros de cada artículo de esta consulta: Cita: select a.folio, a.fecha, a.documento, b.articulo, b.descripcionarticulo, b.precio from entradaencabezado a, entradadetalle b ...
  #1 (permalink)  
Antiguo 18/10/2010, 12:46
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Sonrisa Obtener últimos registros de una union de tablas

Necesito obtener los últimos 3 registros de cada artículo de esta consulta:

Cita:
select
a.folio, a.fecha, a.documento, b.articulo, b.descripcionarticulo, b.precio
from entradaencabezado a, entradadetalle b

where a.folio=b.folio
Resultado de la consulta:

FOLIO |FECHA |DOCUMENTO|ARTICULO |DESCRIPCIONARTICULO |PRECIO
ET02617 |2010-01-08 00:00.0|ETRAS |6100006 |019K04760 SEP PAD |0
ET00333 |2010-03-08 00:00.0|ETRAS |6100006 |019K04760 SEP PAD |0
a001208 |2010-10-02 00:00.0|ECPAM |6100006 |019K04760 SEP PAD |1
a000457 |2010-09-18 00:00.0|ECPAM |6040015 |01J989 DELL LATIT |109
P00350 |2010-08-02 00:00.0|ENTMON |6171194 |02P1183 Battery |59.71004
P000182 |2010-01-06 00:00.0|ENTMON |6171194 |02P1183 Battery |64.77227
P00474 |2010-03-09 00:00.0|ENTMON |6171194 |02P1183 Battery |113.19499
6949 |2010-05-03 53:40.0|ECPAM |6171194 |02P1183 Battery |84
P000537 |2010-10-01 00:00.0|ENTMON |6171194 |02P1183 Battery |81.46975
7819 |2010-04-08 28:29.0|ECPAM |6171194 |02P1183 Battery |84
4728 |2010-01-13 47:37.0|ECPAM |6171194 |02P1183 Battery |84
ET01595 |2010-06-15 00:00.0|ETRAS |6171194 |02P1183 Battery |0
P00508 |2010-06-08 00:00.0|ENTMON |6171194 |02P1183 Battery |60.33697
P00379 |2010-08-08 00:00.0|ENTMON |6171194 |02P1183 Battery |66.50879
7308 |2010-09-11 31:55.0|ECPAM |6171194 |02P1183 Battery |84
3178 |2010-03-01 44:21.0|ECPAM |6171194 |02P1183 Battery |84
7657 |2010-02-04 18:19.0|ECPAM |6171194 |02P1183 Battery |84
P00290 |2010-01-06 00:00.0|ENTMON |6171194 |02P1183 Battery |78.07533
3320 |2010-09-22 48:27.0|ECPAM |6171194 |02P1183 Battery |84
P00192 |2010-07-21 00:00.0|ENTMON |6171194 |02P1183 Battery |83.375


Cuento con mas de 10,000 articulos diferentes y cada que existe una entrada de articulo nuevo o ya existente crea un nuevo registro.

No puedo usar un top 3 ya que solo entregara los primeros 3 registros pero de diferentes articulos.

No puedo usar LIMIT porque estoy usando el SQL sever, trate usando un row() partition pero no pude obtener el dato.

¿Como puedo obtener los últimos 3 registros de los diferentes articulos de esa consulta?
  #2 (permalink)  
Antiguo 19/10/2010, 10:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener últimos registros de una union de tablas

Con esto sacas los primeros 3 registros de lo que necesitas

Código:
select * from
(
select
a.folio, a.fecha, a.documento, b.articulo, b.descripcionarticulo, b.precio,
ROW_NUMBER () OVER ( PARTITION BY a.folio, a.fecha, a.documento, b.articulo, b.descripcionarticulo, b.precio ORDER BY a.folio, a.fecha, a.documento, b.articulo, b.descripcionarticulo, b.precio ASC) AS RN
from entradaencabezado a, entradadetalle b 
) t1 where rn <=3
Saludos!
  #3 (permalink)  
Antiguo 19/10/2010, 14:38
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Obtener últimos registros de una union de tablas

Gracias! :)
  #4 (permalink)  
Antiguo 19/10/2010, 14:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener últimos registros de una union de tablas

De nada un placer :)

Etiquetas: registros, tablas, union
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 12:28.