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

Откуда:
Сообщений: 9
Есть таблица name,date,price в name допустим Маша,Иван,Женя ,у Маши 3 даты, соответственно в таблице 3 строки с одинаковым полем Маша,у Ивана 4 ,у Жени 1.Надо вывести две последние даты на каждого человека.Как просто последнюю дату вывести понимаю,как две последние уже затрудняюсь.Подскажите пожалуйста)
25 ноя 13, 13:27    [15184976]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
happy29,

В зависимости от сервера row_number(), top
25 ноя 13, 13:41    [15185079]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
happy29
Member

Откуда:
Сообщений: 9
Можно по подробнее про row number ,тока начал изучать,не очень понимаю как его можно связать с данной проблемой
25 ноя 13, 13:46    [15185122]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
Glory
Member

Откуда:
Сообщений: 104751
happy29
Можно по подробнее про row number ,тока начал изучать,не очень понимаю как его можно связать с данной проблемой

Нумеруете записи в окне поля name по убыванию поля date
Берете те записи, у которых номер не больше 2
25 ноя 13, 13:55    [15185194]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
happy29
Member

Откуда:
Сообщений: 9
вот пронумеровал
SELECT row_number() over(partition BY name ORDER BY date DESC) num,name ,date FROM Table
и че т туплю, как дополнить условием не больше 2х , с WHERE num <= 2 не получается.
25 ноя 13, 14:36    [15185586]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
with cte as
(SELECT row_number() over(partition BY name ORDER BY date DESC) num,name ,date FROM Table)
select name, date from cte where num <= 2;
25 ноя 13, 14:38    [15185607]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
happy29
Member

Откуда:
Сообщений: 9
Огромное спасибо всем.Получилось.With cte as - это как бы создание временной таблицы как я понял?
25 ноя 13, 14:47    [15185694]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
happy29
Огромное спасибо всем.Получилось.With cte as - это как бы создание временной таблицы как я понял?
А есои переписать немного по-другому, Вам понятнее станет?
select name, date from
(SELECT row_number() over(partition BY name ORDER BY date DESC) num,name ,date FROM Table) cte
where num <= 2;
А ведь это одно и то же!
25 ноя 13, 14:50    [15185725]     Ответить | Цитировать Сообщить модератору
 Re: проблема с выводом даты  [new]
pio777
Member

Откуда:
Сообщений: 127
happy29
Огромное спасибо всем.Получилось.With cte as - это как бы создание временной таблицы как я понял?


Тыц
25 ноя 13, 15:11    [15185926]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить