tres ultimos registros de cada producto

02/09/2005 - 20:42 por Patricio A. Garcia Madariaga | Informe spam
Hola grupo;

hay alguna forma de saber los ultimos registros ingresados
de cada elemento, me explico si tengo 100 productos y solo quiero saber los
3 registros ultimos ingresados de cada producto.


Gracias.

Patricio garcia

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/09/2005 - 21:12 | Informe spam
Patricio,

La ayuda debe ser mutua hombre. Postea la structura de la tabla, asi como
unos datos de prueba y los resultados experados.

Supongamos que tienes una columna con la fecha en que se ingreso cada fila,
entonces puedes usar algo asi como:

select *
from t1 as a
where
(
select count(*)
from t1 as b
where b.pk = a.pk and b.fecha >= a.col_fecha
) <= 3


AMB

"Patricio A. Garcia Madariaga" wrote:

Hola grupo;

hay alguna forma de saber los ultimos registros ingresados
de cada elemento, me explico si tengo 100 productos y solo quiero saber los
3 registros ultimos ingresados de cada producto.


Gracias.

Patricio garcia



Respuesta Responder a este mensaje
#2 Rene Moreno
02/09/2005 - 22:46 | Informe spam
Suponiendo que tienes una columna de fecha o id para indicar en que momento
ingreso el sregistro:

Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg

Saludos
Rene Moreno

"Patricio A. Garcia Madariaga" wrote in message
news:OBVtc3%
Hola grupo;

hay alguna forma de saber los ultimos registros ingresados
de cada elemento, me explico si tengo 100 productos y solo quiero saber
los 3 registros ultimos ingresados de cada producto.


Gracias.

Patricio garcia

Respuesta Responder a este mensaje
#3 Rene Moreno
02/09/2005 - 23:10 | Informe spam
Me faslto el sentido del ordenamiento

Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg DESC



"Rene Moreno" <jorge.moreno[NOSPAM]ARROBA.xpertal.com> wrote in message
news:uctyx9$
Suponiendo que tienes una columna de fecha o id para indicar en que
momento ingreso el sregistro:

Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg

Saludos
Rene Moreno

"Patricio A. Garcia Madariaga" wrote in message
news:OBVtc3%
Hola grupo;

hay alguna forma de saber los ultimos registros ingresados
de cada elemento, me explico si tengo 100 productos y solo quiero saber
los 3 registros ultimos ingresados de cada producto.


Gracias.

Patricio garcia





Respuesta Responder a este mensaje
#4 Alejandro Mesa
03/09/2005 - 16:31 | Informe spam
Rene,

La sentencia que posteastes, nos da las ultimas tres filas ingresadas en la
tabla. Lo que patricio necesita son las ultimas tres filas por cada grupo.
Por ejemplo, usando la tabla [orders] de la bd [northwind], seleccionar los
[id] de las ultimas tres ordenes por cada [customerid].

use northwind
go

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderdate >= a.orderdate
) <= 3
order by
customerid
go

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderdate >= a.orderdate
) <= 3
order by
customerid

en caso que algun cliente tenga mas de tres ordenes en el ultimo dia,
entonces podemos usar la columna [orderid] que se incrementa monoliticamente.

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderid >= a.orderid
) <= 3
order by
customerid
go


AMB

"Rene Moreno" wrote:

Me faslto el sentido del ordenamiento

Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg DESC



"Rene Moreno" <jorge.moreno[NOSPAM]ARROBA.xpertal.com> wrote in message
news:uctyx9$
> Suponiendo que tienes una columna de fecha o id para indicar en que
> momento ingreso el sregistro:
>
> Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg
>
> Saludos
> Rene Moreno
>
> "Patricio A. Garcia Madariaga" wrote in message
> news:OBVtc3%
>> Hola grupo;
>>
>> hay alguna forma de saber los ultimos registros ingresados
>> de cada elemento, me explico si tengo 100 productos y solo quiero saber
>> los 3 registros ultimos ingresados de cada producto.
>>
>>
>> Gracias.
>>
>> Patricio garcia
>>
>
>



Respuesta Responder a este mensaje
#5 robertojdc
19/08/2011 - 19:35 | Informe spam
Alejandro Mesa escribió el 03/09/2005 16:31 :
Rene,

La sentencia que posteastes, nos da las ultimas tres filas ingresadas en la
tabla. Lo que patricio necesita son las ultimas tres filas por cada grupo.
Por ejemplo, usando la tabla [orders] de la bd [northwind], seleccionar los
[id] de las ultimas tres ordenes por cada [customerid].

use northwind
go

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderdate >= a.orderdate
) <= 3
order by
customerid
go

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderdate >= a.orderdate
) <= 3
order by
customerid

en caso que algun cliente tenga mas de tres ordenes en el ultimo dia,
entonces podemos usar la columna [orderid] que se incrementa monoliticamente.

select
*
from
orders as a
where
(
select
count(*)
from
orders as b
where
b.customerid = a.customerid
and b.orderid >= a.orderid
) <= 3
order by
customerid
go


AMB

"Rene Moreno" wrote:

Me faslto el sentido del ordenamiento

Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg DESC



"Rene Moreno" <jorge.moreno[NOSPAM]ARROBA.xpertal.com> wrote
in message
news:uctyx9$
> Suponiendo que tienes una columna de fecha o id para indicar en que
> momento ingreso el sregistro:
>
> Select Top 3 * From MiTabla Order By columna_indicador_ingresp_reg
>
> Saludos
> Rene Moreno
>
> "Patricio A. Garcia Madariaga"
wrote in message
> news:OBVtc3%
>> Hola grupo;
>>
>> hay alguna forma de saber los ultimos registros
ingresados
>> de cada elemento, me explico si tengo 100 productos y solo quiero
saber
>> los 3 registros ultimos ingresados de cada producto.
>>
>>
>> Gracias.
>>
>> Patricio garcia
>>
>
>




Hola me podran ayudar con esto yo quiero solo el ultimo registro de cada grupo solo que es una consulta con mas de una tabla
SELECT WR010130.WCID_I as [CI:], STATE AS [LINEA:], MOP1100.DATERECD as [ULTIMO:]
FROM ((MOP1100 MOP1100 RIGHT OUTER JOIN (
( IV40700 A
RIGHT OUTER JOIN WC010931 B ON A.LOCNCODE = B.WCID_I
)
INNER JOIN WR010130 WR010130 ON B.WCID_I=WR010130.WCID_I)
ON MOP1100.MANUFACTUREORDER_I = WR010130.MANUFACTUREORDER_I)
INNER JOIN WO010032 C ON WR010130.MANUFACTUREORDER_I = C.MANUFACTUREORDER_I
)
WHERE( SELECT COUNT(*) FROM ((MOP1100 X RIGHT OUTER JOIN (
( IV40700 A
RIGHT OUTER JOIN WC010931 B ON A.LOCNCODE = B.WCID_I
)
INNER JOIN WR010130 WR010130 ON B.WCID_I=WR010130.WCID_I)
ON MOP1100.MANUFACTUREORDER_I = WR010130.MANUFACTUREORDER_I)
INNER JOIN WO010032 C ON WR010130.MANUFACTUREORDER_I = C.MANUFACTUREORDER_I
)WHERE MOP1100.MOPRCTNM = X.MOPRCTNM and MOP1100.DATERECD >= X.DATERECD ) <= 1

Asi lo tengo pero no me da el resultado esperado
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida