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

Откуда: Киев
Сообщений: 35
Есть таблица истории действий с столбцами:

ИД действия, ИД клиента, Дата действия, Результат.


Как выбрать только те строки, где дата между первым и СЛЕДУЮЩИМ действием > 3 дней (72 часа) в не зависимости от результата?


В таблицу записываются отправка смс. Выборка необходима для отслеживания платежей после рассылки. Берем зазор в 72 часа. Но если по клиенту отправляли смс с периодичностью в 1 день (например попросил реквизиты отправить) то получу дубли по платежам.
7 июн 19, 11:15    [21904321]     Ответить | Цитировать Сообщить модератору
 Re: Help!  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Patucho,

DATEDIFF(hh,LAG([Дата действия]) OVER (PARTITION BY ORDER BY [Дата действия]),[Дата действия])

хотя может я не понимаю что такое между первым и СЛЕДУЮЩИМ
7 июн 19, 11:25    [21904331]     Ответить | Цитировать Сообщить модератору
 Re: Help!  [new]
Patucho
Member

Откуда: Киев
Сообщений: 35
SELECT TOP 20 l.LID 'ID Клиента'
		,l.Created
		,l.State 'Result'
		,l.PhoneNumber
		,ROW_NUMBER() OVER (PARTITION BY PhoneNumber ORDER BY l.Created) 'Row'
FROM #l l


ID Клиента Created Result PhoneNumber Row
23255455 2019-05-14 09:33:28.0000000 Не доставлено 79000268030 1
23194485 2019-05-10 10:06:22.0000000 Не доставлено 79000283353 1
23194485 2019-05-21 10:42:30.0000000 Не доставлено 79000283353 2
23194485 2019-05-27 09:52:09.0000000 Невозможно доставить 79000283353 3
23181989 2019-05-03 14:22:35.0000000 Доставлено 79000310913 1
23181989 2019-05-10 11:28:55.0000000 Доставлено 79000310913 2
23182491 2019-05-03 14:36:37.0000000 Доставлено 79000323120 1
23182491 2019-05-10 11:39:37.0000000 Доставлено 79000323120 2
23347243 2019-05-16 09:13:32.0000000 Доставлено 79000411508 1
23332591 2019-05-14 09:17:45.0000000 Доставлено 79000450561 1
7 июн 19, 11:36    [21904348]     Ответить | Цитировать Сообщить модератору
 Re: Help!  [new]
Patucho
Member

Откуда: Киев
Сообщений: 35
Необходимо чтобы между Row 1 и 2 (2 и 3, 3 и 4, больше 4-х не может быть) разница в датах была > 72 часов
7 июн 19, 11:38    [21904349]     Ответить | Цитировать Сообщить модератору
 Re: Help!  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Patucho,

а я как сказал?
7 июн 19, 11:39    [21904351]     Ответить | Цитировать Сообщить модератору
 Re: Help!  [new]
Patucho
Member

Откуда: Киев
Сообщений: 35
TaPaK,

Не сразу понял)
Решение подходит, спасибо тебе, человечище!
7 июн 19, 11:47    [21904360]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить