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

Откуда:
Сообщений: 20
Есть таблица T1 из двух полей Id_Client и Date (клиенты и дата их обслуживания).
Нужно выбрать клиентов, которые не обслуживались более 90 дней.
Помогите в таком SELECTе.
11 фев 17, 05:40    [20202491]     Ответить | Цитировать Сообщить модератору
 Re: Нужна в помощь скрипте  [new]
Добрый Э - Эх
Guest
Алекс_1981,

В общем случае ещё должна быть таблица клиентов...
Но вообще, смотреть в сторону not exists подзапрос, либо его замены на semi self join anti
11 фев 17, 06:49    [20202514]     Ответить | Цитировать Сообщить модератору
 Re: Нужна в помощь скрипте  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
set nocount on;
use tempdb;
go
create table #c(cid int not null,sd date not null);
go
insert top(4000) into #c(cid,sd)
select abs(checksum(newid()))%42,
  dateadd(dd,-abs(checksum(newid()))%3650,getdate())
from master..spt_values,master..spt_values a;
with x as(
  select cid,
    max(sd)over(partition by cid)xsd,
    row_number()over(partition by cid order by(select 0))n
  from #c
)
select cid,xsd
from x
where xsd<dateadd(dd,-90,getdate()) and n=1;
go
drop table #c;
11 фев 17, 09:07    [20202581]     Ответить | Цитировать Сообщить модератору
 Re: Нужна в помощь скрипте  [new]
iljy
Member

Откуда:
Сообщений: 8711
Алекс_1981,

select cid
from #t
group by cid
having MAX(sd) < CAST(DATEADD(dd, -90, getdate()) as date)
11 фев 17, 11:38    [20202795]     Ответить | Цитировать Сообщить модератору
 Re: Нужна в помощь скрипте  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
iljy
Алекс_1981,

select cid
from #t
group by cid
having MAX(sd) < CAST(DATEADD(dd, -90, getdate()) as date)
шаман, однако, но cast зачем?
11 фев 17, 13:42    [20203002]     Ответить | Цитировать Сообщить модератору
 Re: Нужна в помощь скрипте  [new]
iljy
Member

Откуда:
Сообщений: 8711
andrey odegov
шаман, однако, но cast зачем?


Привычка. Сервер часто дурить начинает с разными типами даты, добавляя в план странные операции, проще привести к одному и не думать.
11 фев 17, 14:46    [20203118]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить