1

リソース プロジェクションという名前のレポートを 1 つ作成し、3 つのパラメーターを作成しました。

  1. 技術スキル: タイプ: テキスト、複数選択: True、空白値: True、デフォルト値: データベースから 1 行 (約 15 個の値)。

  2. 管理スキル: タイプ: テキスト、複数選択: True、空白値: True、デフォルト値: データベースから 1 行 (約 7 つの値)。

  3. 役割: タイプ: テキスト、複数選択: True、空白値: True、デフォルト値: データベースから 1 行 (約 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_valueこのレポートを実行すると、 とを 1 つだけ含む列のみが表示されますNew_Mng_value

では、この 2 つのコンマ区切りの文字列を分離し、すべてのレコードをコンマ区切りの文字列で表示するにはどうすればよいでしょうか?

4

1 に答える 1

0

あなたが言っているように、 New_Skill_value と New_mng_value はカンマで区切られており、渡すパラメータもカンマで区切られています。

したがって、上記のクエリは、テーブルの値と渡す変数の値が完全に一致する場合にのみ機能します。

渡す変数には同じ値のセットが含まれている可能性がありますが、順序が異なる場合、このクエリは何も返さない可能性があるため、これは常に発生するとは限りません。

したがって、可能であれば、テーブル内のすべてのカンマ区切りの列を id、values などの個別のテーブルに分割してから、一時テーブルと結合して正確な結果を得ることができます。

ここで、一時テーブルは変数の値に他なりません。

于 2012-08-22T10:42:11.673 に答える