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

Откуда:
Сообщений: 3
Есть такой запрос:

select 
distinct p.id_client,
c.name,

case when 
(min(DATEDIFF(DD,p.date_create,GETDATE())) over (partition by p.id_client))=0 
then '-1'
else
min(DATEDIFF(DD,p.date_create,GETDATE())) over (partition by p.id_client)
end
as 'd',

u.id,
u.name
from problems p
left join clients c on c.crm_id=p.id_client
left join users u on u.id=c.id_consultant
where 
'd'<>'-1'
and
c.id_state=1
and 
c.id_implement_state=1
and
p.id_state=8
order by 'd' desc


min(DATEDIFF(DD,p.date_create,GETDATE())) over (partition by p.id_client))
этот кусок вычисляет минимальное значение в пределах одного клиента
Мне нужно в итоге вывести только записи, где это минимальное значение не более 5 например, having не даёт использовать оконную функцию внутри себя. Уж как только я не изголялся, и нулл внутрь запихнул, и в where добавлял условие null не показывать, не хочет никак
9 авг 15, 14:15    [17995011]     Ответить | Цитировать Сообщить модератору
 Re: Использование min в where  [new]
aleks2
Guest
Изучи вложенные запросы

Select *
  from ( select min(x) minx ... from aTable )
  where minx <= 5;
9 авг 15, 14:26    [17995041]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить