我编写了一个存储过程,它将数据集带回如下:
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
答案 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作为最后一列,让世界上任何人都能永远幸福。