因此,我有多个报告正在尝试合并为一个报告。最大的问题是,一份报告每两周运行一次,另一份报告每月运行一次。
报告的日期范围是使用此sql创建的
SELECT
CASE
WHEN DAY(GETDATE()) <= 15 THEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) + 15
ELSE
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) , 0)
END AS LO_DATE
因此,我尝试添加一个我可以使用的参数,该参数基本上会说,嘿,如果选中此选项,则始终将其运行整个月,而不是过去两周。那个sql看起来像这样。
IF (@RUN_FOR_MONTH = 'true')
SELECT
CASE
WHEN DAY(GETDATE()) <= 15 THEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) + 15
ELSE
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) , 0)
END AS LO_DATE
ELSE
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) , 0) AS LO_DATE
但是我仍然收到此错误:
报告参数“ LO_DATE”具有默认值或有效值,该值取决于报告参数“ RUN_FOR_MONTH”。转发依赖项无效。
我是使用SQL Server Report Builder的新手,因此,如果您需要更多信息,请询问,我将提供它。
请求的更改-我仍然遇到相同的错误
SELECT
CASE
WHEN @RUN_FOR_MONTH = 'true' THEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) , 0)
WHEN DAY(GETDATE()) <= 15 THEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) + 15
ELSE
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) , 0)
END AS LO_DATE