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

Откуда: Стерлитамак - Москва
Сообщений: 1023
Таблица с полями:
dogovor, dok_date, dok_no, summa,

делаем выборку:
select
sum(summa),
max(dok_date)
from table
group by dogovor

Встала задача вывести еще поле dok_no, но не включать его в группировку, а вывести то у которого date=max(date). Если бы это была одна таблица то все просто. А тут запрос из запроса гигантской длинны. Сделать подзапрос просто нереально. Как быть?
18 сен 09, 15:55    [7679983]     Ответить | Цитировать Сообщить модератору
 Re: Как так сгруппировать?  [new]
iljy
Member

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

сервер какой? если 2005 и выше - можно так:

select sum(summa), max(dok_date), max(case when dok_date = max_date then dok_no end)
from
(
  select *, max(dok_date) over(partition by dogovor) max_date from
  (ваш подзапрос) t
) t
group by dogovor
18 сен 09, 16:00    [7680031]     Ответить | Цитировать Сообщить модератору
 Re: Как так сгруппировать?  [new]
Klick
Member

Откуда: Стерлитамак - Москва
Сообщений: 1023
Спасибо!
Помогло!
22 сен 09, 10:11    [7690502]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить