I got this kind of table
I already tried to obtain the following query and it works fine
SELECT DISTINCT
USER_ID, SESSION_ID,
(SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 1 AND USER_ID = 407) AS START_TIME_SESSION,
(SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 2 AND USER_ID = 407) AS END_TIME_SESSION,
DATEDIFF(mi, (SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 1 AND USER_ID = 407),
(SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 2 AND USER_ID = 407)) AS TIME_SESSION
FROM
Actividades_Usuarios
WHERE
USER_ID = 407
but for a single user, for example:

Then I try to make it out for the general case, setting EVENT*_*TIME as START_TIME_SESSION when EVENT_ID is 1, instead END_TIME_SESSION when EVENT_ID is 2, with the follow query:
SELECT DISTINCT USER_ID,
SESSION_ID,
(SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 1) as START_TIME_SESSION,
(SELECT EVENT_TIME FROM Actividades_Usuarios
WHERE EVENT_ID = 2) as END_TIME_SESSION
FROM Actividades_Usuarios
but get the common error:
Subquery returned more than 1 value...
when I'm looking exactly that query result. In fact, if I go run one of the column as a simple query, returns the same quantity of rows, whatever select...
SELECT USER_ID,SESSION_ID,
EVENT_TIME as START_TIME_SESSION
FROM Actividades_Usuarios
WHERE EVENT_ID = 1

But, how can I do this adding the other column (END_TIME_SESSION) and the final goal column result (TIME_SESSION) from DATEDIFF between these two?