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 originalItemCode|Price|ValidFrom
Articulo 1|100,00|2010-09-01
Articulo 1|110,00|2010-09-23
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 originalDECLARE @Fecha datetime
SET @Fecha = '20100924'
SELECT T1.*
FROM TuTabla T1
INNER JOIN (
SELECT ItemCode, MIN(ValidFrom) ValidFrom
FROM TuTabla
WHERE ValidFrom >= @Fecha
GROUP BY ItemCode
) T2 ON T1.ItemCode = T2.ItemCode AND T1.ValidFrom = T2.ValidFrom
Saludos y espero que te sirva de algo el código.
Leo