我正在SSRS中制作报告,我可以输入参数值并获得结果。但我想要的是,例如,如果我输入“全部”,则列出所有服务器,或者列出我输入的特定服务器。
这是 TSQL 更改吗?或者改变SSRS参数设置?有人对如何实现这一目标有建议吗?
这是我尝试过的:
DECLARE @p_ServerName varchar(10) = 'all'
DECLARE @p_Env nvarchar(10)
DECLARE @p_EnvCat nvarchar(10)
SELECT BlockSize, BootVolume, Compressed, SystemName = @p_ServerName, Label, Caption, PageFilePresent,
[dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', Capacity) AS Capacity,
[dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', FreeSpace) AS [Free Space],
[dbo].[CCS_DIGITAL_STORAGE_CONVERTER]('B', 'GB', Capacity - FreeSpace) AS [Used Space],
100 * FreeSpace / Capacity AS [Free Space %],
[CLE_ENV_SHORT], [CLE_ENV_CAT_SHORT]
FROM CCS_Win32_Volume, [dbo].[CCS_V_SERVER_INSTANCE_DETAILS]
WHERE (@p_ServerName = SystemName) OR (@p_ServerName = 'all')
AND [CLE_ENV_SHORT] = @p_Env
AND [CLE_ENV_CAT_SHORT] = @p_EnvCat
使用所有硬编码参数,我应该看到所有结果,对吧?但我没有得到任何结果返回。
最佳答案
您可以相应地编写 WHERE 子句:
select ...
from mytable
where @param = col or @param = 'all';
关于sql - 列出全部或指定值 - SSRS 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761345/