SSRS中的条件列可见性

时间:2017-08-23 15:28:54

标签: sql visual-studio reporting-services

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

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

2 个答案:

答案 0 :(得分:0)

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

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

然后你在SSRS中的查询需要有这些参数 - 一旦你添加&#34; @&#34;在您的查询中,SSRS会自动为您创建参数,但您需要双击它们并将其更改为日期。

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

答案 1 :(得分:0)

不要说我在我的SPROC中使用了包含变量的日期范围。

最后,我使用pivot和case语句组合修改了存储过程,这使我能够在日期范围内(变量之间)和日期范围之外的所有内容都为NULL。

然后我隐藏了SSRS中的NULL值列,并添加了一个Total作为最后一列,让世界上任何人都能永远幸福。