Выбор данных из таблицы

  • Автор темы Автор темы jcolor
  • Дата начала Дата начала
J

jcolor

Всем, привет:)
Подскажите, кто знает, как можно красиво написать запрос по выбору данных из таблицы:
есть таблица
DatеRequest - дата работы
UserName - имя пользователя
DocName - название док-та, с кот. пользователь работал за эту дату

В эту таблицу заносятся данные по работе пользователя с документами.
Необходимо выбрать последнюю дату работы каждого пользователя и последний открываемый им документ.

Пробовала сделать след. образом:
Код:
DECLARE @T1 TABLE(UserName CHAR(100), DatеRequestMax DATETIME)
DECLARE @T2 TABLE(UserName CHAR(100), DateRequest DATETIME, DocName CHAR(100))

-- выбираю последнюю дату работы каждого пользователя
INSERT INTO @T1(UserName, DatеRequestMax)
SELECT UserName, MAX(DateRequest) FROM TableName
GROUP BY UserName

-- выбираю название открываемых документов
INSERT INTO @T2(UserName, DateRequest, DocName)
SELECT UserName, DateRequest, DocName FROM TableName
GROUP BY UserName, DateRequest, DocName

-- объединяю две таблицы, чтоб получить последний открываемый документ
SELECT a.UserName, a.DatеRequestMax, b.DocName FROM @T1 AS a
INNER JOIN @T2 AS b ON(a.UserName LIKE b.UserName AND a.DatеRequestMax LIKE b.DateRequest)
ORDER BY a.UserName

Но таким образом запрос выполняется длительное время,
какие еще есть варианты для выбора последних данных из таблицы??
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab