Ayuda obteniendo ultimo registro de un codigo
Publicado por Jhonatan Ruiz (4 intervenciones) el 24/04/2018 23:32:11
Hola buenos dias solicito una ayuda o guia para tratar de resolver una consulta en sql, cabe notar que soy nuevo en este mundo; estoy tratando realizar una consulta que muestre el ultimo registro por codigo de item es decir tengo unos valores como codigo de item, fecha y costo, necesito estructurar una consulta que me de el ultimo registro de ese item en base al costo maximo y la fecha.
Este es el ejemplo de mi codigo.
Y mi resultado arrojado es este:
CodItem Descrip1 Costo Fecha de Compra NumeroD TipoCom CodProv Cantidad
00001 Porta Vaso Ram 159.51000 09-06-2011 00000051 H 313816680 2.00000
00001 Porta Vaso Ram 333.34000 11-03-2011 00001388 H 29849302-0 6.00000
00001 Porta Vaso Ram 210.88000 17-07-2009 00000980 H 314418777 2.00000
00004 Porta Ipod Ram 276.48000 17-07-2009 00000980 H 314418777 1.00000
00005 Porta Iphone Ram 100000.00000 22-04-2017 000053 H 404366709 2.00000
00005 Porta Iphone Ram 276.48000 17-07-2009 00000980 H 314418777 1.00000
000164 Manilla Compuerta Chevrolet Silverado ce 166.50000 26-05-2010 00000201 H 29849302-0 1.00000
00031 Rejilla Stop Toyota Corolla 09 266.07000 26-05-2010 00000201 H 29849302-0 1.00000
001-031 Alarma Up-Grade Alsama 38094.86000 23-11-2016 0000024 H 407318675 5.00000
001-031 Alarma Up-Grade Alsama 31745.72000 22-11-2016 002 H 407318675 1.00000
Ahora si pueden ver el código 00001 se repite varias veces yo necesito de ese código el ultimo registro con el valor mas alto y obviamente la fecha y asi sucesivamente con los demas codigos como por ejemplo el 001-0031 o el 000005 que también presenta el mismo caso.
Pero no se que buscar para poder hacer esta consulta no consigo lograrlo ni con group by, ni con max porque entonces este me muestra un solo registro de toda la tabla y no uno de cada uno ni con last_value; no se si es que no estoy agrupando de la forma correcta.
Me podrian por favor chicos y chicas del foro!.
Este es el ejemplo de mi codigo.
1
2
3
4
5
6
7
8
9
select CodItem, Descrip1, Costo, convert(varchar(10),FechaE,105) as [Fecha de Compra], NumeroD, TipoCom, CodProv, Cantidad
from saitemcom
group by CodItem, Descrip1, Costo, FechaE, NumeroD, TipoCom, CodProv, Cantidad
having TipoCom = 'H'
order by CodItem,FechaE Desc
Y mi resultado arrojado es este:
CodItem Descrip1 Costo Fecha de Compra NumeroD TipoCom CodProv Cantidad
00001 Porta Vaso Ram 159.51000 09-06-2011 00000051 H 313816680 2.00000
00001 Porta Vaso Ram 333.34000 11-03-2011 00001388 H 29849302-0 6.00000
00001 Porta Vaso Ram 210.88000 17-07-2009 00000980 H 314418777 2.00000
00004 Porta Ipod Ram 276.48000 17-07-2009 00000980 H 314418777 1.00000
00005 Porta Iphone Ram 100000.00000 22-04-2017 000053 H 404366709 2.00000
00005 Porta Iphone Ram 276.48000 17-07-2009 00000980 H 314418777 1.00000
000164 Manilla Compuerta Chevrolet Silverado ce 166.50000 26-05-2010 00000201 H 29849302-0 1.00000
00031 Rejilla Stop Toyota Corolla 09 266.07000 26-05-2010 00000201 H 29849302-0 1.00000
001-031 Alarma Up-Grade Alsama 38094.86000 23-11-2016 0000024 H 407318675 5.00000
001-031 Alarma Up-Grade Alsama 31745.72000 22-11-2016 002 H 407318675 1.00000
Ahora si pueden ver el código 00001 se repite varias veces yo necesito de ese código el ultimo registro con el valor mas alto y obviamente la fecha y asi sucesivamente con los demas codigos como por ejemplo el 001-0031 o el 000005 que también presenta el mismo caso.
Pero no se que buscar para poder hacer esta consulta no consigo lograrlo ni con group by, ni con max porque entonces este me muestra un solo registro de toda la tabla y no uno de cada uno ni con last_value; no se si es que no estoy agrupando de la forma correcta.
Me podrian por favor chicos y chicas del foro!.
Valora esta pregunta
0