PIVOT требует, что бы список "Действий" был определён заранее.
DECLARE @actionsUsers TABLE ( Пользователь VARCHAR(100), Действие VARCHAR(100), ТипДействия INT )
INSERT @actionsUsers VALUES ( 'Иванов', 'Изменил дату', 1 ),
( 'Петров', 'Добавил запись', 4 ),
( 'Соколов', 'Изменил описание', 2 ),
( 'Иванов', 'Изменил дату', 1 ),
( 'Соколов', 'Изменил заголовок', 3 ),
( 'Соколов', 'Изменил заголовок', 3 )
SELECT [Пользователь],
[Добавил запись], [Изменил дату], [Изменил описание], [Изменил заголовок]
FROM
( SELECT [Пользователь], [Действие]
FROM @actionsUsers ) AS AUC
PIVOT ( COUNT([Действие]) FOR [Действие]
IN ([Добавил запись], [Изменил дату], [Изменил описание], [Изменил заголовок] )) AS PT
ORDER BY [Пользователь]