SQL инкрементальные данные - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь получить только инкрементные записи в одной из таблиц SQL.

Пример Table1 - нужно вставлять данные 10 раз в день из некоторых исходных данных. Допустим, я вставил утром 10 записей. Еще один новый рекорд пришел через час. Всего будет 20 записей. И это продолжается в течение всего дня. И мне нужно запустить скрипт, чтобы показать только часть приращения. ТАК, что бы я ни показывал утром, не должно быть следующего забега. Обычно каждый раз, когда обновляется основная таблица, мне нужно запускать скрипт, чтобы отображать только обновленные новые строки, а не старые выходящие строки.

Ответы [ 3 ]

1 голос
/ 10 июля 2020

Добавьте номер пакета к данным, и тогда вы сможете запрашивать данные, возвращая только последний пакет. Примерно так.

Во время вставки

DECLARE @Batch INT = (SELECT MAX(BatchNo)+1 as NextBatchNo FROM myTable)
IF @Batch IS NULL 
   SET @Batch = 1

INSERT INTO myTable (firstColumn, secondColumn, anotherColumn, BatchNo)
  SELECT firstColumn, secondColumn, anotherColumn, @Batch 
      FROM mySourceDataTable

Чтобы вставить последние строки

SELECT * FROM myTable
    WHERE Batch = (SELECT MAX(Batch) FROM myTable)
0 голосов
/ 10 июля 2020

Если у вас есть база данных oracle, вы можете использовать функцию ретроспективного просмотра, чтобы получить эти данные.

Ссылка для получения дополнительной информации https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm

0 голосов
/ 10 июля 2020

Запросите таблицу для отображения результатов за последние 24 дня, используя функцию Date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...