我在 Reporting Services 2008 中创建数据集时遇到问题。这是我要使用的查询(通用化以供公众使用):
Declare @PersonID as int
set @PersonID = (select top 1 personID from People where name = @PersonName)
select (some columns)
from [otherTable]
where personID = @PersonID
我只有一个输入参数:@PersonName
. 但是,Studio 2008 似乎认为“定义查询参数”窗口中@PersonID
还需要一个值。所以当我尝试只输入一个值时@PersonName
,它给了我“这个变量已经被定义”。
我之所以通过@PersonName
,是因为我需要显示一个人类可读的人员列表,以便从下拉列表中选择,作为报告的唯一面向用户的参数。我意识到我可以做一个子查询并忘记上面示例中的变量,但是我的实际查询更大/更丑,而且我不能准确地向数据表添加索引,所以我想限制表扫描。