2

私はMSSQLデータベースを使用しており、次のように1人のユーザーに割り当てられたすべての部門IDを持つUserDepartmentsという名前のテーブルがあります

UserID | DepartmentID
1      | 220
1      | 330
1      | 210
1      | 100
2      | 330
2      | 440
3      | 550

次のように表示するそのテーブルのVIEWを正確に作成したい

UserID | Departments
1      | 220, 330, 210, 100
2      | 330, 440
3      | 550

MSSQLを使用してそれを行うことは可能ですか?

4

1 に答える 1

2

これを試してみてください -

クエリ:

DECLARE @temp TABLE
(
       UserID INT
     , DepartmentID INT
)

INSERT INTO @temp (UserID, DepartmentID)
VALUES 
     (1, 220),(1, 330),
     (1, 210),(1, 100),
     (2, 330),(2, 440),
     (3, 550)

SELECT 
       t.UserID
     , DepartmentID = STUFF((
          SELECT ', ' + CAST(DepartmentID AS VARCHAR(10))
          FROM @temp t2
          WHERE t2.UserID = t.UserID
          FOR XML PATH(''), TYPE).value('.', 'VARCHAR(1024)'), 1, 2, '')                            
FROM ( 
     SELECT DISTINCT UserID 
     FROM @temp
) t

出力:

UserID      DepartmentID
----------- -----------------------------
1           220, 330, 210, 100
2           330, 440
3           550
于 2013-07-16T05:18:37.460 に答える