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

Откуда:
Сообщений: 46
Доброго времени суток!
Подскажите, плиз, как можно выбрать value из таблицы с последней датой в разрезе ID:

ID VALUE DATE
a 1 01.01.01
a 2 02.01.01
a 3 03.01.01
b 1 01.01.01
b 2 02.01.01

отелось бы получить

ID VALUE DATE
a 3 03.01.01
b 2 02.01.01
27 сен 04, 16:40    [990356]     Ответить | Цитировать Сообщить модератору
 Re: простенький запрос  [new]
redcossack
Member

Откуда: Москва
Сообщений: 147
select *
from t 
where date in (
     Select max(date)
     from t
     group by id)
27 сен 04, 16:56    [990441]     Ответить | Цитировать Сообщить модератору
 Re: простенький запрос  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
2 redcossack - надо добавить еще "в разрезе ID"
select t1.*
from t t1 inner join (
     Select id, max(date) as date
     from t
     group by id) t2 on t1.id=t2.id and t1.date=t2.date
27 сен 04, 17:11    [990526]     Ответить | Цитировать Сообщить модератору
 Re: простенький запрос  [new]
redcossack
Member

Откуда: Москва
Сообщений: 147
LR
2 redcossack - надо добавить еще "в разрезе ID"
select t1.*
from t t1 inner join (
     Select id, max(date) as date
     from t
     group by id) t2 on t1.id=t2.id and t1.date=t2.date

group by id
и означает "в разрезе ID" :).
27 сен 04, 17:29    [990601]     Ответить | Цитировать Сообщить модератору
 Re: простенький запрос  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
2 redcossack
в Вашем варианте строка
a 2 02.01.01
попадет в выборку, а не должна
27 сен 04, 17:51    [990697]     Ответить | Цитировать Сообщить модератору
 Re: простенький запрос  [new]
redcossack
Member

Откуда: Москва
Сообщений: 147
Вы правы.
27 сен 04, 18:00    [990734]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить