像这样的东西(已更正):
SELECt CASE WHEN next.Date IS NULL THEN prev.Rate WHEN prev.Date IS NULL THEN next.Rate WHEN next.Date = prev.Date THEN prev.Rate ELSE ( DATEDIFF(d, prev.Date, @InputDate) * next.Rate + DATEDIFF(d, @InputDate, next.Date) * prev.Rate ) / DATEDIFF(d, prev.Date, next.Date) END AS interpolationRate FROM ( SELECt TOP 1 Date, Rate FROM Rates WHERe Date <= @InputDate ORDER BY Date DESC ) AS prev CROSS JOIN ( SELECt TOP 1 Date, Rate FROM Rates WHERe Date >= @InputDate ORDER BY Date ASC ) AS next



