我有一张包含此数据的表格
员工reported
的日期和该周的start date
周(星期一)。
现在他们没有在所有日期工作,例如圣诞节周没有数据。
有没有办法可以添加缺失的星期。所以,我仍然会有每周的开始日期。但报告日期可以为空。
我不能声明变量。
答案 0 :(得分:1)
根据您的数据,最简单的方法可能是:
select distinct weekstart_date
from t
union
select distinct dateadd(day, 7, weekstart_date)
from t;
你似乎永远不会错过超过一周的时间,因此只需将每周与下一周结合起来就足够了。
答案 1 :(得分:0)
如果间隔超过1周,您可以使用递归cte执行此操作。
WITH WeeklyCTE AS
(
SELECT MIN(weekstart_date) AS weekstart_date
FROM MyTable
UNION ALL
SELECT DATEADD(week, 1, weekstart_date)
FROM WeeklyCTE
WHERE DATEADD(week, 1, weekstart_date) <= GETDATE()
)
SELECT t.reportdate,
w.weekstart_date
FROM WeeklyCTE w
LEFT JOIN MyTable t ON w.weekstart_date = t.weekstart_date