上次观察结转查询(SELECT from-between 不完整的时间序列)

Last observation carried forward query (SELECT from-between incomplete time series)

我有一个 table 只有在某些重新计算完成后才会得到一个新行(TOTAL 列)

DATE_REFRESH    TOTAL
2020-08-28     40000.00
2020-09-04     60000.00
2020-09-22    100000.00
2020-10-13    125000.00

我需要 SELECT 日期 2020-09-15 和 return 60 000 这是 2020-09-22 下一个 update/refresh 之前的最后金额

想要的结果:60 000

太!

您可以使用 order bytop (1):

select top (1) *
from mytable 
where date_refresh <= '20200915'
order by date_refresh desc

我想我理解你的问题,我的方法是在 SQL 中使用 DATEDIFF() 解决它。 所以 SQL 脚本如下:

SELECT TOTAL FROM (*your table*)
WHERE DATE_REFRESH = (
 SELECT TOP 1 DATE_REFRESH
 FROM (*your table*)
 WHERE DATE_REFRESH < (*your date*)
 ORDER BY DATEDIFF ( (*your date*), DATE_REFRESH )
)

我从离您的日期最近的 (TOP 1 FROM - ORDER BY DATEDIFF()) 较小 (DATE_REFRESH < (*your date*)) 日期的行中选择 TOTAL。

希望对您有所帮助。 :)