我正在研究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
随着所有参数的硬编码,我应该看到所有结果都正确吗?然而,我没有得到任何结果。
答案 0 :(得分:1)
您可以相应地编写WHERE子句:
select ...
from mytable
where @param = col or @param = 'all';