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

Откуда:
Сообщений: 146
Даже не знаю, как объяснить суть задачи, что бы ее поняли и чтоб было мало дополнительных вопросов.

В СиКвеЛе настроен шедулер, которые проделывает такую операцию, каждый день.

SELECT [Dt]
      ,[CustomerName]
      ,[ItemRelation]
      ,[ProductName],
CASE 
WHEN MAX(CASE WHEN IsPromo = 1 THEN SaleCount END) OVER (PARTITION BY ItemRelation,DocumentNum) < 0 
AND SaleCount < 0 
THEN 0 
ELSE SaleCount 
END AS SaleCount
,[DocumentNum]
      ,[DocumentDate]
      ,[IsPromo]
      ,[CustomerType]
      ,[CalendarYear]
  into [Action].[dbo].[promo_data1]
 FROM [Action].[dbo].[promo_data]

...

...



в [Action].[dbo].[promo_data] строки имеют размах дат (Dt column) от 01.01.2017-01.09.2018.

Так вопрос


Как сделать, чтобы скрипт работал только со свежепоступившими данными.
Итак, сегодня скрипт отработал с 01.01.2017-01.09.2018 а

завтра скрипт запустился и видит, что данные в [Action].[dbo].[promo_data] теже самые(в плане дат, значит добавлять

их [Action]. [dbo]. [promo_data1] не надо.

но допусти в четверг поступят данные, где диапазон дат больше чем 01/09/2018 , а значит с ними нужно работать.

Но есть подковырка, данные, даже если они больше 01.09.2018, могут иметь хвост ,который меньше этой даты.
почему такое может быть? Акция проводился с 01.08.2018 ,а закончилась 24.10.2018, и только после этого данные поступили в базу.

Я работаю с группой

,[DocumentNum]+
,[DocumentDate]+

,[CustomerType]+

,[CalendarYear]


Следовательно нужно скрипт в шедулере исправить, чтобы он выполнял две проверки.
1. являются ли поступившие данные больше 01.09.2018
2.если являются нет ли у них хвоста, который захватывает диапазон дат меньше 01.09.2018

Если они новые и без хвоста, берем их в таблицу [Action].[dbo].[promo_data1]
если они новые но с хвостом, значит берем не только то что больше 01.09.2018,но и принадлежащий им хвост

Как так модифицировать код?
24 окт 18, 12:50    [21713377]     Ответить | Цитировать Сообщить модератору
 Re: проверка новых данных при использовании планировщика SQL  [new]
iiyama
Member

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

Ваш скрипт будет работать только 1 раз

+
select .. into [Action].[dbo].[promo_data1]
24 окт 18, 13:02    [21713390]     Ответить | Цитировать Сообщить модератору
 Re: проверка новых данных при использовании планировщика SQL  [new]
Glebanski
Member

Откуда: Msk ->NL
Сообщений: 308
Kontox,

А кроме DocumentDate у вас других datetime в системе нет?

PS: Всегда можно воспользоваться minus для сравнения двух датасетов
26 окт 18, 13:14    [21716014]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить