SSRS 中的条件列可见性



我编写了一个存储过程,它带回了一个数据集,如下所示:

Sales Office | Jan | Feb | Mar | Apr --- Continuing to EOYear and then a total
Office 1      Sales Amount in each Month.
Office 2   

然后我在 SSRS 中有这个。

我只想显示数据集中所需的月份(通过参数选择(

例如。4月至6月将显示

Sales Office | Apr | May | June
Office 1    The figures for these months
Office 2

最佳解决方案是在存储过程中包含该参数,以便它仅返回实际要显示的数据:

CREATE PROCEDURE GetMyReport(@StartDate DATE, @EndDate DATE)
AS
SELECT *
FROM MyTable
WHERE CAST(TheDateTime AS DATE) >= @StartDate
AND CAST(TheDateTime AS DATE) <= @EndDate

然后,SSRS 中的查询需要具有这些参数 - 在查询中添加"@"符号后,SSRS 将自动为你创建参数,但你需要双击它们并将其更改为日期。

恕我直言,使用表值函数而不是存储过程更容易:只有在需要完成某些操作时才应使用 procs,而当您只是提取数据时,应使用 TVF。

很抱歉没有说我在 SPROC 中使用了带有变量的日期范围。

最后,我使用透视和案例语句组合修改了存储过程,这使我能够在日期范围(变量之间(内将 0 值和日期范围之外的所有值都设置为 NULL。

然后,我在 SSRS 中隐藏了 NULL 值列,并添加了"总计"作为最后一列,以使世界上任何地方的每个人都永远快乐。

最新更新