在SSRS报告中,是否可以在选择单个值参数时返回值集合?当在SSRS中选择单个值参数时可以返回值集合
例如,我想要一个参数Team
,可以选择:“Cardinals,Orioles,Blue Jays”。
当选择了一个团队,我想回到所选团队的成员,所以我可以做这样的事情
Select Runs
From Baseball.Data
WHERE Player IN (@Team)
Reporting Services中这是可能的,或是否有更好的方法?
在SSRS报告中,是否可以在选择单个值参数时返回值集合?当在SSRS中选择单个值参数时可以返回值集合
例如,我想要一个参数Team
,可以选择:“Cardinals,Orioles,Blue Jays”。
当选择了一个团队,我想回到所选团队的成员,所以我可以做这样的事情
Select Runs
From Baseball.Data
WHERE Player IN (@Team)
Reporting Services中这是可能的,或是否有更好的方法?
创建另一个参数@Players
并将其设置为多值参数和内部参数。使用此表达式来填充参数。
=Switch(
Parameters!Team.Value="Cardinals",split("CardinaPlayer1,CardinalPlayer2,CardinalPlayer3",","),
Parameters!Team.Value="Orioles",split("OriolesPlayer1,OriolesPlayer2,OriolesPlayer3",","),
Parameters!Team.Value="Blue Jays",split("BlueJaysPlayer1,BlueJaysPlayer2,BlueJaysPlayer3",",")
)
我假设@Team不是一个多值参数。替换 CardinalPlayerX,OriolesPlayerX等由玩家的实际名称。
现在在查询中只使用@Players
参数:
Select Runs
From Baseball.Data
WHERE Player IN (@Players)
让我知道,如果这有助于。
这非常接近,但只返回每个列表中的第一个玩家。什么似乎工作(但似乎甚至hackier)是使用开关参数的每个默认值。例如, 值1 =开关( 参数!Team.Value = “红雀”, “CardinaPlayer1”, 参数!Team.Value = “莺”, “OriolesPlayer1”, 参数!Team.Value = “蓝色鸟” ,“BlueJaysPlayer1” ) 然后每个后续值将包括一个类似的switch语句。谢谢。 – Matt
注意split函数返回一个数组与球员(在我的情况3)。有必要确定参数或查询是否只返回一个玩家。创建文本框并在报告中使用此表达式。 = join(Parameters!Players.Value,“,”)预览报告以查看参数中是否只有一个玩家。 –
单值。没关系。我可以用我的黑客方式来做,并称之为一天。谢谢您的帮助。 – Matt
这是可能的,但你必须使用两个参数,一个让用户选择团队。其他参数将球队球员传递给查询。我会使用'LookupSet()'函数来获取玩家。如果您需要进一步的帮助,请提供团队和玩家所在的表格结构。 –
我只想在报告中硬编码团队球员映射。他们永远不会改变,我没有他们的桌子。谢谢。 – Matt
你怎么知道红衣主教的球员?你怎么能在Baseball.Data表中识别出它,因为我认为Player是不是球队的球员的名字。你在Baseball.Data表中有一个Team列吗? –