2016-02-19 26 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

相關問題