Используя SQL-сервер, у меня есть три таблицы:
Одна [AD] включает в себя список всех действий, выполняемых пользователем, включая идентификатор пользователя [UserID] и описания [Description], а также идентификаторописания сеанса относится к [SessionID], и когда действие было выполнено [Timestamp].
```
UserID Description Timestamp SessionID
221 Completed action item 27/01/2019 10:43 202
221 Completed action item 08/03/2019 07:07 232
221 Completed action item 08/03/2019 07:07 232
221 Completed action item 08/03/2019 07:08 235
221 Completed action item 08/03/2019 07:08 236
221 Completed action item 08/03/2019 07:08 236
221 Completed action item 08/03/2019 07:12 237
221 Completed action item 08/03/2019 07:13 238
221 Completed action item 08/03/2019 07:14 239
221 Completed action item 08/03/2019 07:14 239
221 Completed action item 08/03/2019 07:15 233
221 Completed action item 08/03/2019 07:15 233
221 Completed action item 08/03/2019 07:16 240
202 Completed action item 27/03/2019 09:56 331
202 Completed action item 27/03/2019 09:56 331
202 Completed action item 27/03/2019 09:57 332
202 Completed action item 27/03/2019 09:57 332
202 Completed action item 27/03/2019 09:58 333
202 Completed action item 27/03/2019 09:58 333
202 Completed action item 27/03/2019 09:59 334
202 Completed action item 27/03/2019 09:59 334
202 Completed action item 27/03/2019 10:00 335
202 Completed action item 27/03/2019 10:01 336
202 Completed action item 27/03/2019 10:01 336
202 Completed action item 27/03/2019 10:02 337
```
Каждый сеанс связан с курсом.Я вижу ассоциацию во второй таблице [Сеансы].эта таблица содержит список всех курсов [CourseID] и какие сеансы связаны с каждым курсом [SessionID].
```
CourseID SessionID
46 202
62 232
62 235
72 331
72 332
73 333
Третья таблица содержит имя пользователя и адрес электронной почты.
```
UserID FirstName Email
202 Buddy sample@gmail.com
232 John john@gmail.com
```
Мне удалось объединить все три таблицы и подсчитать, сколько сессий каждый пользователь провел для каждого курса.
Моя выходная таблица включает в себя: CourseID, сумму отсчетов за сессию, UserID, имя пользователя и адрес электронной почты
Теперь я бы хотел, чтобы в каждую строку добавлялась последняя дата обновления строки.Поэтому, если пользователь проводит сеанс сегодня, сумма увеличивается (это работает), и в столбце даты будет показана сегодняшняя дата.
Я пытался использовать Макс (дата), но я получаю ошибки независимо от того, гдеЯ положил это.Я уверен, что это связано с местоположением в подзапросах.Я использовал Max ([Timestamp]) или пытался использовать
CAST([Timestamp] AS DATE) as 'Date'
, а затем использовал Max (), но безрезультатно.
Вот что у меня есть, без даты:
```
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS id,
id_user,
u.[FirstName],
u.[Email],
COURSEID,
SUM(A) AS SESSIONS_DONE
FROM (
SELECT
s.[CourseID] COURSEID
,count (distinct s.[SessionID]) as 'A'
,ad.[UserID] id_user
FROM [Sessions] s, [AuditData] ad
WHERE s.[SessionID]=ad.[SessionID]
AND ad.[Description]='Completed action item'
GROUP BY CourseID, USERID
)sub
Join [Users] u on id_user=u.[UserID]
GROUP BY id, u.[FirstName], u.[Email], id_user, COURSEID, A
--ORDER BY lastupdate
;
```
, как вы можете видеть, в конечном итоге я хочу, чтобы результаты были в порядке даты. Пример результата должен выглядеть примерно так:
```
id | COURSEID | A | id_user | lastupdate
1 | 62 | 8 | 221 | 2019-03-03 07:16:19.920
2 | 72 | 7 | 202 | 2019-03-27 10:02:12.367
3 | 42 | 1 | 221 | 2019-03-27 10:43:31.717
```
Я могу получить первые четыре столбца (плюс имяи адрес электронной почты, не представленный в этой таблице), это последний, который я не знаю, как получить.Есть идеи?