Select 下一个值等于另一个值

Select next value where it equals another value

我有一个table的会计年度为100年。即

我想添加一个列来显示每个 week_ending_date 所属的财政年度。因此,在第 1 周上方的 table 中,week_ending_date 2013-10-05 将属于 2014 年结束的财政年度。

简而言之,我只是希望添加列中的每个值都是 week_ending_date 的年份部分,其中下一个 week_number 是 52。

这是我想要实现的伪代码。

SELECT
    Week_Ending_Date,
    (SELECT NEXT VALUE FOR Week_Ending_Date (***but as only year***) FROM Fiscal_Calendar WHERE FC.Week_Number = 52)
FROM Fiscal_Calendar AS FC
JOIN Shipped_Container AS SC
    ON SC.Fiscal_Week_Ending = FC.Week_Ending_Date 

请记住,这在 table 中已有 100 年,因此我无法 select 最后一个值,这使得使用 WHERE 变得困难(对我而言)。

您可以这样做的一种方法是减去 7 * 周数,取年份并加 1:

select 1 + year(dateadd(day, -7 * week_number, week_ending_date))