2

次の SQL Server クエリにはヘルプが必要です

select 
    JI.id, RBIEnvironment
from
   (select 
       issue,
       case when cfname='RBI-Environment' 
              then customvalue 
             else null 
       end as 'RBIEnvironment' 
    from X) as CT
where 
    CT.issue = JI.id
group by 
    JI.id, RBIEnvironment

問題は、CTテーブルが次の形式でデータを返すことです

1   NULL
1   STG
1   PROD
2   SIT
2   DIT
3   SIT

したがって、外側のクエリが返されます

1   NULL
1   STG
1   PROD
2   SIT
2   DIT
3   SIT

次の形式が必要です

1   STG,PROD
2   SIT,DIT
3   SIT

resultselt に表示する必要がある列がいくつか含まれているため、同じ内部動的テーブルを使用してください。この内部テーブルは、課題フィールドと ID フィールドをそれぞれ使用して外部テーブルとリンクされています。

4

2 に答える 2

2

STUFF()そのための機能を試してください:

SELECT distinct ID, RBIEnvironment = 
    STUFF((SELECT ' , ' + RBIEnvironment
           FROM MyTable b 
           WHERE b.ID = a.ID
          FOR XML PATH('')), 1, 2, '')
FROM MyTable a
GROUP BY ID;

出力:

| ID | RBIENVIRONMENT |
-----------------------
|  1 |     STG , PROD |
|  2 |      SIT , DIT |
|  3 |            SIT |

このSQLFiddleを参照してください

于 2013-07-23T08:33:41.983 に答える