nr, your query does not work for today's date.-- prepare sample datadeclare @s table ([id] int, [name] varchar(20), [desc] varchar(20), [charge] money, [validuntil] datetime)insert @sselect 1, 'PE', 'Some desc', 995, '1/30/2007 12:00:00 AM' union allselect 2, 'PE', 'Some desc', 1100, '6/30/2008 12:00:00 AM' union allselect 3, 'PE', 'Some desc', 1500, '12/30/2008 12:00:00 AM'declare @mydate datetime, @wanteddate datetimeselect @mydate = getdate(), @wanteddate = getdate()-- nr originalselect chargefrom @swhere Validuntil = (select max(Validuntil) from @s where ValidUntil <= @mydate) -- nr improved by pesoselect chargefrom @swhere Validuntil = (select min(Validuntil) from @s where ValidUntil > @mydate)-- pesoselect top 1 *from @swhere validuntil >= @wanteddateorder by validuntil
Peter LarssonHelsingborg, Sweden