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

Consultar ultimos 3 años de una tabla en SQL

Estas en el tema de Consultar ultimos 3 años de una tabla en SQL en el foro de SQL Server en Foros del Web. Buen día a tod@s una vez mas apelando a sus conocimientos pongo me pregunta en este bendito foro que me ha sacado de tantos problemas ...
  #1 (permalink)  
Antiguo 11/10/2013, 10:44
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 18 años, 9 meses
Puntos: 0
Consultar ultimos 3 años de una tabla en SQL

Buen día a tod@s una vez mas apelando a sus conocimientos pongo me pregunta en este bendito foro que me ha sacado de tantos problemas ya que no encuentro como hacer una consulta en donde en una de las tablas hay un campo [evendate] del tipo datetime el cual tiene mas de 7 mil registros de fechas desde la actual hasta del 1995 pero solo me interesa sacar mediante una consulta los últimos 3 años es decir 2013 - 2012- 2011 -2010

mi consulta mas o menos queda asi.

Código SQL:
Ver original
  1. SELECT [caredata].[BH_EVENTS].*,[caredata].[EV_FARROWINGS].* FROM [caredata].[BH_EVENTS],[caredata].[EV_FARROWINGS]
  2.         WHERE [caredata].[BH_EVENTS].event_type=170 AND [caredata].[BH_EVENTS].event_id = EV_FARROWINGS.event_id AND
  3.         [BH_EVENTS].eventdate <= Dateadd(yy,-1,Getdate()) ORDER BY eventdate DESC

con esta ultima parte del código

Código XML:
Ver original
  1. [BH_EVENTS].eventdate <= Dateadd(yy,-1,Getdate())
pense que se solucionaria (soy novato) pero lo que hace es que me quita el año actual y empieza a listar los datos hacia atras es decir 2012 - 2011 - etc.

espero puedan ayudarme porque en verdad no encuentro la solución... gracias de antemano.

Última edición por gnzsoloyo; 11/10/2013 a las 10:46 Razón: Usar Highlight "SQL", por favor...
  #2 (permalink)  
Antiguo 11/10/2013, 11:32
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consultar ultimos 3 años de una tabla en SQL

Cambialo, por un BETWEEN, entre el actual y le restas al actual 3 años y el final....
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 11/10/2013, 12:25
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: Consultar ultimos 3 años de una tabla en SQL

no seria mas facil un

AND
datediff(yyyy,BH_EVENTS].eventdate,getdate()) >=3
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 11/10/2013, 13:01
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consultar ultimos 3 años de una tabla en SQL

Habría que hacer pruebas, me gusta la propuesta
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 12/10/2013, 02:51
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Consultar ultimos 3 años de una tabla en SQL

Supongo que quieres recuperar todas las filas a partir de 01/01/2010 (y no de 12/10/2010):
Código SQL:
Ver original
  1. [BH_EVENTS].eventdate >= DateAdd(YEAR,DateDiff(YEAR,0,Getdate())-3,0)
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #6 (permalink)  
Antiguo 17/10/2013, 16:44
 
Fecha de Ingreso: julio-2005
Mensajes: 73
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Consultar ultimos 3 años de una tabla en SQL

Cita:
Iniciado por GeriReshef Ver Mensaje
Supongo que quieres recuperar todas las filas a partir de 01/01/2010 (y no de 12/10/2010):
Código SQL:
Ver original
  1. [BH_EVENTS].eventdate >= DateAdd(YEAR,DateDiff(YEAR,0,Getdate())-3,0)
he estado probando esta instruccion que me estas brindando solo que observo que me consulta 3 años pero me descarta de manera automatica el año actual. (2013) observo los datos y me arroja resultados de 2012 - 2011 - 2010. pero 2013 queda descartado.. que ocuparia para que me quede 201 3 - 2012 - 2011 por ejemplo

gracias de antemano.

mi contulta queda asi.

Código SQL:
Ver original
  1. SELECT [caredata].[BH_EVENTS].*,[caredata].[EV_FARROWINGS].* FROM [caredata].[BH_EVENTS],[caredata].[EV_FARROWINGS]
  2.         WHERE [caredata].[BH_EVENTS].event_type=170 AND [caredata].[BH_EVENTS].event_id = EV_FARROWINGS.event_id AND
  3.         [BH_EVENTS].eventdate >= DateAdd(YEAR,DateDiff(YEAR,0,Getdate())-3,0)

Última edición por gnzsoloyo; 17/10/2013 a las 17:47 Razón: Codigo de programacion no permitido en foros de BBDD

Etiquetas: Ninguno
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 03:34.