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

Откуда:
Сообщений: 29
Есть таблица

REVENUE
Date, Name, Revenue, Cost, Datestamp
2011-11-20, Имя1, 300, 50, 2011-11-21 06:05
2011-11-20, Имя1, 302, 51, 2011-11-21 19:35
2011-11-20, Имя3, 306, 60, 2011-11-21 06:06
2011-11-20, Имя3, 400, 80, 2011-11-21 12:15
2011-11-20, Имя3, 280, 48, 2011-11-21 21:35

нужно выбрать младшие записи по Datestamp в которых уникальные только Date и Name
23 ноя 11, 17:53    [11647150]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все младшие записи не используя идентификатор  [new]
Klick
Member

Откуда: Стерлитамак - Москва
Сообщений: 1023
select
date,
name,
Datestamp,
min_datestamp
(
select 
date,
name,
min(Datestamp) over (partition by date,name) min_datestamp
from REVENUE
) res
where min_datestamp=Datestamp
23 ноя 11, 17:59    [11647219]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все младшие записи не используя идентификатор  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
fduch11
нужно выбрать младшие записи по Datestamp в которых уникальные только Date и Name

select *
from (
	select Date, Name, min(Datestamp) as Datestamp
	from REVENUE
	group by Date, Name
) t
join REVENUE r
	on r.Datestamp = t.Datestamp
	and r.Date = t.Date 
	and r.Name = t.Name
23 ноя 11, 18:03    [11647254]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все младшие записи не используя идентификатор  [new]
fabulaspb
Member

Откуда: Санкт-Петербург
Сообщений: 34
Если datestamp является первичным ключом таблицы revenue, то:

SELECT * FROM revenue AS rev
WHERE NOT EXISTS(SELECT * FROM revenue WHERE datestamp <> rev.datestamp AND date = rev.date AND name = rev.name)
23 ноя 11, 18:03    [11647259]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить