Сумма динамических столбцов сводной таблицы в SQL Server
У меня есть динамический сводный запрос, в котором столбцы генерируются динамически.
Мой стол: ATTENDANCE_MASTER содержит: идентификатор, Stud_id, ATT_DATE, подарок
который хранит такие данные, как:
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
Я создал сводный запрос
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
Пожалуйста, предложите мне решение.
заранее спасибо.
Maciej Los
Что вы пробовали? Где ты застрял?