Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хитрый запрос хочу сделать  [new]
cyber2k
Member

Откуда:
Сообщений: 2
Имеется таблица A со столбцами Name и ID
Имеется таблица B со столбцами DateTime, A_ID и C_ID
Ещё есть таблица C со столбцами Name и ID.

Cоответственно, запрос

Select A.Name 'Name_A', C.Name 'Name_C'
from A
inner join B on B.A_ID=A.ID
inner join C on C.ID=B.C_ID

вернёт все записи A.Name и для каждой из них все соответствующие записи С.Name. А надо бы, чтобы для каждой A.Name выводилось только C.Name, для которого B.DateTime было бы самым "свежим".
18 май 04, 13:58    [684632]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос хочу сделать  [new]
Вербняков Александр
Member

Откуда: г.Таганрог, Ростовская область
Сообщений: 498
Select A.Name 'Name_A', C.Name 'Name_C' , MAX(B.DateTime)
from A
inner join B on B.A_ID=A.ID
inner join C on C.ID=B.C_ID
GROUP BY A.Name 'Name_A', C.Name 'Name_C'
18 май 04, 14:06    [684675]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос хочу сделать  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2386
Блог
Select A.Name 'Name_A', C.Name 'Name_C' 
from A
inner join B on B.A_ID=A.ID
inner join C on C.ID=B.C_ID
inner join (select a_id, max(DateTime) as DateTime 
        from B
        group by A_ID) bb on B.A_ID = bb.A_ID and B.DateTime = bb.DateTime
18 май 04, 14:18    [684740]     Ответить | Цитировать Сообщить модератору
 THANK YOU VERY MUCH  [new]
cyber2k
Member

Откуда:
Сообщений: 2
Спасибо всем большое :)
18 май 04, 14:56    [684894]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить