2016-02-19 42 views
0

在SSRS报告中,是否可以在选择单个值参数时返回值集合?当在SSRS中选择单个值参数时可以返回值集合

例如,我想要一个参数Team,可以选择:“Cardinals,Orioles,Blue Jays”。

当选择了一个团队,我想回到所选团队的成员,所以我可以做这样的事情

Select Runs 
From Baseball.Data 
WHERE Player IN (@Team) 

Reporting Services中这是可能的,或是否有更好的方法?

+0

这是可能的,但你必须使用两个参数,一个让用户选择团队。其他参数将球队球员传递给查询。我会使用'LookupSet()'函数来获取玩家。如果您需要进一步的帮助,请提供团队和玩家所在的表格结构。 –

+0

我只想在报告中硬编码团队球员映射。他们永远不会改变,我没有他们的桌子。谢谢。 – Matt

+0

你怎么知道红衣主教的球员?你怎么能在Baseball.Data表中识别出它,因为我认为Player是不是球队的球员的名字。你在Baseball.Data表中有一个Team列吗? –

回答

0

创建另一个参数@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) 

让我知道,如果这有助于。

+0

这非常接近,但只返回每个列表中的第一个玩家。什么似乎工作(但似乎甚至hackier)是使用开关参数的每个默认值。例如, 值1 =开关( 参数!Team.Value = “红雀”, “CardinaPlayer1”, 参数!Team.Value = “莺”, “OriolesPlayer1”, 参数!Team.Value = “蓝色鸟” ,“BlueJaysPlayer1” ) 然后每个后续值将包括一个类似的switch语句。谢谢。 – Matt

+0

注意split函数返回一个数组与球员(在我的情况3)。有必要确定参数或查询是否只返回一个玩家。创建文本框并在报告中使用此表达式。 = join(Parameters!Players.Value,“,”)预览报告以查看参数中是否只有一个玩家。 –

+0

单值。没关系。我可以用我的黑客方式来做,并称之为一天。谢谢您的帮助。 – Matt

相关问题