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

Тема в разделе "SQL", создана пользователем jcolor, 19 апр 2007.

  1. jcolor

    jcolor Гость

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

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

    Пробовала сделать след. образом:
    Код (Text):
    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
    Но таким образом запрос выполняется длительное время,
    какие еще есть варианты для выбора последних данных из таблицы??
     
  2. jcolor

    jcolor Гость

    Спасибо!!!
     
Загрузка...

Поделиться этой страницей