【发布时间】:2020-01-16 15:48:25
【问题描述】:
名为“模板”的第一个表具有如下所示的有效日期和配置列:
第二个表是包含日期、会计周和会计年度的会计日历。
第一个生效日期在第 39 会计周,而下一个生效日期在第 42 会计周。这意味着第 40 和第 41 会计周应该与第 39 会计周具有相同的配置。我需要一个反映这一点的输出。我编写了以下 sn-p 但输出不正确,并在第 42 财政周显示配置 D。
SELECT *
FROM (
SELECT a.FiscalYear, a.FiscalWeek, EffectiveDate, Configuration,
ROW_NUMBER() OVER (PARTITION BY CONCAT(FiscalYear,FiscalWeek,EffectiveDate,Configuration) ORDER BY EffectiveDate ) AS rn
FROM [Template],
[FiscalCalendar] AS a
WHERE AND a.FiscalDate BETWEEN '2019-10-27' AND '2019-11-17'
AND EffectiveDate BETWEEN '2019-10-27' AND '2019-11-17'
AND EffectiveDate = a.FiscalDate
) AS t WHERE t.rn = 1
【问题讨论】:
标签: sql sql-server sql-server-2014