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

Откуда:
Сообщений: 566
Добрый день!
Есть таблица, например:
Производитель Товар Цена ДатаПрихода
(Mnf) (Name) (Price) (DateIN)
Mnf1 Name1 1.02 01.01.15
Mnf1 Name1 1.07 04.02.15
Mnf1 Name1 1.03 09.03.15
Mnf1 Name2 2.02 10.08.15
Mnf1 Name2 2.07 04.02.15
Mnf1 Name2 2.03 09.03.15
Mnf1 Name2 2.09 09.07.15
Нужно выбрать строки с датой последнего прихода. Результат:
Mnf1 Name1 1.03 09.03.15
Mnf1 Name2 2.02 10.08.15
Select Mnf,Name,Max(DateIN) from t 
left join (Select * from t) t1 On t1.Mnf=t.Mnf AND t1.Mnf=t.Mnf AND t1.DateIN=t.DateIN
group by Mnf,Name

Правильно ли так будет? Можно ли обойтись без вложенного запроса?
Спасибо.
2 сен 15, 13:09    [18099541]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с группировкой  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 649
Lexx_SQL,

Это нужно?
SELECT TOP 1 WITH TIES t.* FROM t ORDER BY ROW_NUMBER() OVER(PARTITION BY Mnf, Name ORDER BY DateIN DESC)
2 сен 15, 13:21    [18099610]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с группировкой  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Lexx_SQL, решение зависит от версии сервера.
2 сен 15, 13:33    [18099674]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с группировкой  [new]
Добрый Э - Эх
Guest
Lexx_SQL,

читай, выбирай на свой вкус и по возможностям сервера
2 сен 15, 13:36    [18099687]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с группировкой  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Guf,

Спасибо. Этот вариант работает.
2 сен 15, 13:36    [18099688]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить