列が動的に生成される動的 PIVOT クエリがあります。
私のテーブル: ATTENDANCE_MASTER 含む: ID、Stud_id、ATT_DATE、PRESENT
次のようなデータを保存します。
ID Stud_id ATT_DATE PRESENT
1 1 2015-08-1 1
2 2 2015-08-1 0
3 3 2015-08-1 1
4 1 2015-08-2 0
5 2 2015-08-2 1
6 3 2015-08-2 1
PIVOT クエリを作成しました
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
SET @columns = N'';
SELECT @columns += N', p.' + QUOTENAME(ATT_DATE)
FROM (SELECT p.ATT_DATE FROM dbo.ATTENDANCE_MASTER AS p
GROUP BY p.ATT_DATE) AS x;
SET @sql = N'SELECT Stud_id, ' + STUFF(@columns, 1, 2, '') + '
FROM
(
SELECT p.ATT_DATE, p.Stud_id, p.PRESENT FROM dbo.ATTENDANCE_MASTER AS p
) AS j
PIVOT
(
SUM(PRESENT) FOR ATT_DATE IN ('+ STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '') + ')
) AS p;';
PRINT @sql;
EXEC sp_executesql @sql;
次のような列の合計が必要です
Stud_ID 2015-08-01 2015-08-2 2015-08-3 Total
1 1 0 1 2
2 1 1 1 3
3 1 1 0 2
4 0 0 1 1
解決策を提案してください。
前もって感謝します。