Sql server 在SSRS中手动输入参数值或默认全部
我试图在SSRS中创建一个参数,用户可以选择手动输入id,或者让报告返回所有记录。以下是参数当前的外观: 在这种情况下,用户可以手动输入一个providerid,该ID有效。但是,用户是否可以将providerid参数保留为空,然后默认情况下,报告将针对所有记录运行 providerid参数由存储过程填充:Sql server 在SSRS中手动输入参数值或默认全部,sql-server,reporting-services,parameters,ssrs-2012,Sql Server,Reporting Services,Parameters,Ssrs 2012,我试图在SSRS中创建一个参数,用户可以选择手动输入id,或者让报告返回所有记录。以下是参数当前的外观: 在这种情况下,用户可以手动输入一个providerid,该ID有效。但是,用户是否可以将providerid参数保留为空,然后默认情况下,报告将针对所有记录运行 providerid参数由存储过程填充: Select distinct cast(providerid as varchar(25)) as providerid from Table A 我在这里读过其他类似的
Select distinct cast(providerid as varchar(25)) as providerid
from Table A
我在这里读过其他类似的文章,但我不知道如何完成这项工作。完成这项工作的标准方法是: 向下拉列表中添加另一个名为ALL的项目,并使用特殊值
Select distinct
cast(providerid as varchar(25)) as providerid,
cast(providerid as varchar(25)) as providerLabel
from Table A
union all
select -1, 'All Providers'
确保正确分配标签和值
在存储过程中允许此特殊值:
where ...
and (providerid = @providerid or @providerid = -1)
and ...
我还是不能让它正常工作。参数框不应填充任何内容。它应该是空的,它将返回所有记录,或者用户可以手动输入id。如果它必须是空的,则将“所有提供者”替换为“”。如果这不能解决问题,请解释清楚。我想问题可能在于如何填充SSRS参数框。我不知道该怎么办。我将可用值留空。对于默认值,我选择了“”。在我的SP中,我添加了一个UNION ALL Select-1“”。但从逻辑上讲,这意味着如果下拉框留空,值将=-1,这不会返回任何内容。我需要-1来返回所有的值。这就是我答案的第2部分所解释的(尽管没有太多细节)。您需要更改报告过滤器,以便如果通过-1,它将返回所有内容。这是SSRS的标准实践。我假设存储过程是填充报告的过程,但可能我误解了您是否解决了问题?同样,这是一种经过验证且可靠的方法来实现此功能