我有一个带有一系列 ID 的表。每个 ID 的日期范围从当年开始到 2025 年。每个 ID 每年都有一个特定的价格。
http://i.imgur.com/srplSDo.jpg
一旦我使用每个 ID 达到某个点,它就不再有特定的价格。所以我想做的是把前几年的价格提高2.5%。我想出了一个方法来用这个来抓住前几年的价格
SELECT a.*,
(CASE
WHEN a.YEARLY_PRICING is not null
THEN a.YEARLY_PRICING
ELSE (SELECT b.YEARLY_PRICING
FROM #STEP3 b
WHERE (a.id = b.id) AND (b.YEAR = a.YEAR-1))*1.025
END) AS TEST
FROM #STEP3 a
这将提供这些结果:
但是我遇到的问题是在第一个空年份之后,它仍然将以前的 yearly_pricing 识别为空,这给了我空结果,所以显然这种方法对我不起作用。还有其他改进建议吗?
谢谢