【发布时间】:2015-03-18 15:39:49
【问题描述】:
我有一份 SSRS 报告,它汇总了指定日期范围内的数据集。
我想使用报告参数为查询中的聚合函数提供日期范围。这甚至可能吗?
我有使用变量的聚合函数,但我想更改它,以便用户可以在报告运行之前选择日期范围。
下面是原始的工作聚合函数(在整个查询的上下文中 - 我已经删除了查询的不相关部分以避免混淆)。
注意@MonthNum 和@ReportYear 变量被用作COUNT() 函数的标准。我想更改这些变量以报告参数值,但无法解决。
DECLARE @MonthNum int;
DECLARE @ReportYear int;
SET @MonthNum = CASE WHEN (MONTH(GETDATE())=1) THEN 12 ELSE MONTH(GETDATE()) - 1 END;
SET @ReportYear = CASE WHEN (MONTH(GETDATE())=1) THEN
YEAR(GETDATE())-1 ELSE YEAR(GETDATE()) END;
SELECT
COUNT(CASE WHEN (MONTH(tblInvoices.fldDeliveredDate) = @MonthNum AND
(YEAR(tblInvoices.fldDeliveredDate)) = @ReportYear) THEN tblSessions.fldStudioNo END)
AS MonthVolume
FROM tblInvoices INNER JOIN
tblSessions ON tblInvoices.fldSesID = tblSessions.fldSesID INNER JOIN
tblSessionCustom ON tblSessions.fldSesID = tblSessionCustom.fldSessionCustomID
INNER JOIN
tblCompInfo ON tblSessions.fldStudioNo = tblCompInfo.fldStudioNo
GROUP BY tblSessions.fldStudioNo, tblCompInfo.fldCompName
HAVING (NOT (tblSessions.fldStudioNo LIKE '999'))
提前感谢您提供的任何帮助或指导。非常感谢。
戴夫
【问题讨论】:
-
您需要在报告参数窗口中为您的日期创建 2 个参数,并使用数据集属性窗口将该参数传递给您的查询。
标签: sql reporting-services parameters sql-server-2012 aggregate-functions