powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проверка новых данных при использовании планировщика SQL
3 сообщений из 3, страница 1 из 1
проверка новых данных при использовании планировщика SQL
    #39722030
Kontox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже не знаю, как объяснить суть задачи, что бы ее поняли и чтоб было мало дополнительных вопросов.

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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,но и принадлежащий им хвост

Как так модифицировать код?
...
Рейтинг: 0 / 0
проверка новых данных при использовании планировщика SQL
    #39722037
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kontox,

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

select .. into [Action].[dbo].[promo_data1]
...
Рейтинг: 0 / 0
проверка новых данных при использовании планировщика SQL
    #39723460
Glebanski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kontox,

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

PS: Всегда можно воспользоваться minus для сравнения двух датасетов
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проверка новых данных при использовании планировщика SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]