Sql server 即使级联参数为空,SSRS负载报告

Sql server 即使级联参数为空,SSRS负载报告,sql-server,reporting-services,ssrs-2008,report,expression,Sql Server,Reporting Services,Ssrs 2008,Report,Expression,我有如下级联参数:年公司选择年值后,公司参数被刷新 所以,例如,如果我选择了2016,但今年没有数据,公司参数为空(没有值),并且报告说该参数不能为空(我选中了“允许空白值”,但它不能处理多值参数),请参见下图: 如何加载带有“对不起,没有数据”这样的消息的报告?如果没有其他值,是否为公司参数提供任何默认值?你有什么想法吗?一个解决方案是让你的年度参数数据驱动,与你的公司在同一张表中。创建一个如下所示的新数据集,并将其用作年份参数的可用值 SELECT DISTINCT year FRO

我有如下级联参数:
公司
选择
值后,
公司
参数被刷新

所以,例如,如果我选择了
2016
,但今年没有数据,
公司
参数为空(没有值),并且报告说该参数不能为空(我选中了“允许空白值”,但它不能处理多值参数),请参见下图:


如何加载带有“对不起,没有数据”这样的消息的报告?如果没有其他值,是否为
公司
参数提供任何默认值?你有什么想法吗?

一个解决方案是让你的年度参数数据驱动,与你的公司在同一张表中。创建一个如下所示的新数据集,并将其用作年份参数的可用值

SELECT DISTINCT year  
FROM companies
WHERE report_relevant = 'Yes'  
ORDER BY 1

这限制了用户只能选择存在有效公司的年份。一旦将2016年公司添加到您的数据中,该报告将自动将2016年作为年度参数选项包含在内。

您可以使用
联合
向您的参数中添加额外的数据行,但是
Count()
您的有效公司将只在没有其他公司时包含额外的数据行

SELECT company_id, company_name
FROM companies
WHERE year = @Year
UNION
SELECT '-1', 'No companies in ' + @Year
WHERE (SELECT Count(company_id) FROM companies WHERE YEAR = @Year) = 0

谢谢您的回答,但我已经在使用这个解决方案,但在这种情况下对我没有帮助,因为它更复杂,我提供了简化的示例。有
参数。。。