Answer the question
In order to leave comments, you need to log in
How to make SQL query correctly?
Tell me how to redo the selection from the @actionsUsers table
SELECT * FROM @actionsUsers
Пользователь Действие ТипДействия
Иванов Изменил дату 1
Петров Добавил запись 4
Соколов Изменил описание 2
Иванов Изменил дату 1
Соколов Изменил заголовок 3
Соколов Изменил заголовок 3
Пользователь Добавил запись Изменил дату Изменил описание Изменил заголовок</li>
Иванов 0 2 0 0
Петров 1 0 0 0
Соколов 0 0 1 2
Answer the question
In order to leave comments, you need to log in
PIVOT requires that a list of "Actions" be defined beforehand.
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 [Пользователь]
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question