1

我已創建了一個報告中提到的資源預測和創建3個參數:如何在報表生成器3.0查詢設計器中拆分字符串?

  1. 技術技能:類型:文本,多選:是的,空白值:真,默認值:從數據庫一行(約15個值)。

  2. 管理技能:類型:文本,多選項:True,空白值:True,默認值:來自數據庫的一行(約7值)。

  3. 作用:類型:文本,多選項:True,空白值:True,默認值:一行來自數據庫(大約30個值)。

我的查詢是:

SELECT O.CustomerIdName, 
    TC.New_ResourcesIdName, 
    TC.New_number, 
    TC.New_RoleIdName, 
    TC.New_Skill_value, 
    TC.New_mng_value, 
    TC.New_year, 
    convert(nvarchar(10),TC.New_StartDate,101) as New_StartDate, 
    convert(nvarchar(10),TC.New_EndDate,101) as New_EndDate 
FROM New_resource as TC 
INNER JOIN Opportunity as O ON 
    (TC.New_ResourcesId = O.OpportunityId) 
WHERE TC.DeletionStateCode = '0' 
    and TC.New_ResourcesId is not null 
    and ((TC.New_Skill_value in (@TechnicalSkills))or (TC.New_mng_value in (@ManagementSkills))) 
    and TC.New_RoleIdName in (@Role) 

New_Skill_valueNew_mng_value包含昏迷分隔的字符串,如:

New_Skill_value = "Android,Java,PHP,SQL". 
New_mng_value = "Communication Skill, Decision Making Skill". 

現在,當我運行此報告只顯示我只包含列一個New_skill_valueNew_Mng_value

那麼我怎樣才能分開這2個逗號分隔的字符串,並用逗號分隔字符串顯示所有記錄?

回答

0

正如你所說你的New_Skill_value和New_mng_value是逗號分隔的,你傳遞的參數也是用逗號分隔的。

因此,上述查詢只有在表值和傳遞變量值之間存在精確匹配時纔有效。

我想這可能不會總是發生,因爲你傳遞的變量可能包含相同的一組值,但以不同的順序,那麼這個查詢可能不會返回任何東西。

所以我在這裏建議的是如果可能的話,你可以將表中的所有逗號分隔列分隔成不同的表,如id,值,然後再加上臨時表以獲得準確的結果。

這裏的臨時表只不過是變量中的值。

相關問題