我有一个表有这个数据 当天员工reported
和那一周的start date
(星期一)这一周的日期。 现在,他们没有工作的所有日期,例如圣诞节周没有数据。 有没有一种方法可以补充缺失的星期。因此,我仍然有每周和每周的星期开始日期。但报告日期可以为空。sql获取每周的两个日期之间的开始日期
我无法声明变量。
我有一个表有这个数据 当天员工reported
和那一周的start date
(星期一)这一周的日期。 现在,他们没有工作的所有日期,例如圣诞节周没有数据。 有没有一种方法可以补充缺失的星期。因此,我仍然有每周和每周的星期开始日期。但报告日期可以为空。sql获取每周的两个日期之间的开始日期
我无法声明变量。
与您的数据,可能是最简单的方法是这样的:
select distinct weekstart_date
from t
union
select distinct dateadd(day, 7, weekstart_date)
from t;
你再也不会丢失一个多星期,所以只是每个星期结合了下周似乎足够了。
如果有超过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
到这里看看:http://stackoverflow.com/questions/9180308/ssrs-default-parameter-values-in-subscription/9180701#9180701 – JonH
@JonH我想环节都有无关这个问题。 –
@haytem - 你一定没有读过它......标量值函数允许他打电话来获取任何日期的weekstart_date。它非常相关。实际上,他可以简单地调用'SELECT * FROM [MyDB]。[dbo]。[udfCommonDates](GetDate())'或者执行'SELECT get_week_start FROM [MyDB]。[dbo]。[udfCommonDates](GetDate() )'并加载或加入此表。 – JonH