SQL - Seleccionar los mayores

 
Vista:

Seleccionar los mayores

Publicado por Luis Fernando Forero G. (5 intervenciones) el 12/09/2005 23:18:34
Hola, esta es la tabla en cuestion

hPR_fecha hPR_NumCargos
------------------------------------------------------ -------------
2002-01-31 12:23:12.000 7268
2002-01-31 12:23:13.000 6000
2003-01-31 12:23:13.000 7000
2003-01-31 16:23:13.000 6800
2004-01-31 12:23:13.000 6500
2005-01-31 00:00:00.000 6000

esta es la consulta que hago:

Select * from HistoricoPRAP
WHERE DATEPART(year, hPR_fecha) < DATEPART(year, getdate())
AND DATEPART(year, hPR_fecha) > DATEPART(year, getdate()) - 4

La cual me devuelve:

hPR_fecha hPR_NumCargos
------------------------------------------------------ -------------
2002-01-31 12:23:12.000 7268
2002-01-31 12:23:13.000 6000
2003-01-31 12:23:13.000 7000
2003-01-31 16:23:13.000 6800
2004-01-31 12:23:13.000 6500

pero este no es el punto, el punto es el siguiente:

como vemos aparecen varios registros por años en el resultado en algunos casos, por ejemplo 2 registros del 2003 .Lo que quiero es que solo aparesca un registro por año, el mayor, alguien me podria ayudar?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Seleccionar los mayores

Publicado por alhucave (12 intervenciones) el 12/09/2005 23:43:50
Hno,

Lo que pasa es que en tu consulta estas poniendo el campo hPR_NumCargos, y si observas para un mismo año hay dos hPR_NumCargos, por eso te sale repetido, si no quieres que te salga repetido debes quitar el campo: hPR_NumCargos y hacer esto:

select max(hPR_fecha)
from HistoricoPRAP
group by DATEPART(year, hPR_fecha)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccionar los mayores

Publicado por Luis Fernando Forero G. (5 intervenciones) el 13/09/2005 21:30:10
Pero el campo que me dies que quite tambien lo necesito, es decir : necesito los cargos que hay en un determinado ano , y si hay 2 o mas referencias para ese ano se toma el mayor o mejor el ultimo ano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccionar los mayores

Publicado por Alhucave (12 intervenciones) el 14/09/2005 16:39:42
ok,
Entonces debes hacer esto:

select distinct Fecha = max(hPR_fecha), NumCargos = (select max(hPR_NumCargos) from HistoricoPRAP where hPR_fecha = convert(datetime,x.hPR_fecha))
from HistoricoPRAP x
group by DATEPART(year, hPR_fecha)
order by DATEPART(year, hPR_fecha)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar