1

这是我第一次使用 SQL Server 报告服务。我有两个日期类型参数:开始日期和结束日期。当我用相应的数据集填充这两个参数时,我可以正确运行报表。

但是,当用户仅填写开始日期时,我想显示该日期及以后的报告。例如,如果用户只填写开始日期,我的查询将是这样的

WHERE StartDate >= @StartDate

或者如果用户只填写 EndDate 字段,我的查询将是这样的

WHERE EndDate <= @EndDate.

我有以下两个问题:

1)我可以根据用户使用SSRS选择的内容使用不同的数据集吗?例如,如果用户不选择任何我想运行不同的查询。

2)如果是,我该如何处理?因为过滤器参数是必填字段,并且我一直收到警告消息。

任何意见,将不胜感激。谢谢你。

4

1 回答 1

2

如果我理解正确的话,您的问题似乎有一个更简单的解决方案。您似乎表明参数是可选的。在这种情况下,只需允许参数的 Null 值WHERE,并按如下方式重写您的子句:

WHERE (@StartDate IS NULL OR StartDate >= @StartDate)
AND   (@EndDate   IS NULL OR EndDate   <= @EndDate)

在任何情况下,您都不能根据所选参数“不执行数据集”(通常也不需要这样做)。如果您确实需要类似的东西,那么子报表可能是您的最佳选择。但是,根据您的问题,我认为有一个更简单的解决方案可用。

于 2013-05-08T09:45:30.163 回答