Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/09/2010, 13:22
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Condición para que se muestren registros por fecha

Buenas Tardes LHG, no me quedó muy clara tu explicación, pero por el concepto que estás manejando de Vigencia de los precios creo que hay un detalle con la consulta que propone el compañero flaviovich. Esta consulta siempre te estaría regresando el precio que corresponde a la fecha máxima de vigencia pero este precio puede no corresponder al vigente para el día de hoy. Veamos si con algunos datos me puedo explicar mejor (suponiendo que esto es lo que necesitas)

Supongamos que tenemos los siguientes datos en la tabla (el formato de fecha sería yyyy-mm-dd):

Código HTML:
Ver original
  1. ItemCode|Price|ValidFrom
  2. Articulo 1|100,00|2010-09-01
  3. Articulo 1|110,00|2010-09-23
  4. Articulo 1|120,00|2010-09-25

hasta el día 01 el precio vigente sería precisamente el del día 01, entre el día 02 y 23 el precio vigente sería el del 23 y entre el 24 y 25 el precio vigente sería el del 25 correcto?

La consulta que propone flaviovich siempre regresaría el precio del día 25, independientemente de la fecha en que realizas la consulta.

Te propongo que pruebes con lo siguiente:

Código SQL:
Ver original
  1. DECLARE @Fecha datetime
  2. SET @Fecha = '20100924'
  3. SELECT T1.*
  4. FROM TuTabla T1
  5. INNER JOIN (    
  6.         SELECT ItemCode, MIN(ValidFrom) ValidFrom
  7.         FROM TuTabla
  8.         WHERE ValidFrom >= @Fecha    
  9.         GROUP BY ItemCode
  10. ) T2 ON T1.ItemCode = T2.ItemCode AND T1.ValidFrom = T2.ValidFrom

Saludos y espero que te sirva de algo el código.
Leo