SQL Server に 2 つのテーブルがあります。
表 1 :部門
DeptId Dept Name
------------------
1 Software Development
2 Testing
3 Customization
表 2 :指定
DesigId Desig Name DeptId
---------------------------
1 TL 1
2 PL 1
3 TestEngg 2
4 SE 3
部門を列見出しとし、対応する部門列の下にグループを指定する次の出力が必要です。
Software Development Testing Customization
TL TestEngg SE
PL
以下のクエリを試してみましたが、ID のみを取得できます
DECLARE @deptcols AS VARCHAR(MAX);
DECLARE @querystr AS VARCHAR(MAX);
select @deptcols = STUFF((SELECT distinct ',' + QUOTENAME(Dept_Id)
FROM Designation
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @querystr = 'SELECT ' + @deptcols + ' from
(
select Desig_Name, Dept_Id,Desig_Id
from Designation
) p
pivot
(
count(Desig_Id) FOR Dept_Id in (' + @deptcols + ')
) pv '
execute(@querystr)