【问题标题】:SQL incremental data [closed]SQL增量数据[关闭]
【发布时间】:2020-07-10 04:31:07
【问题描述】:

我正在尝试仅获取其中一个表 SQL 上的增量记录。

示例表 1——需要每天从一些源数据中插入 10 次数据。假设我在早上插入了 10 条记录。一个小时后,又一个新的记录来了。所以总共将是 20 条记录。它整天都在不断地进行。而且我需要运行脚本以仅显示增量部分。所以我早上展示的任何东西都不应该包括下一次运行。基本上每次更新主表时,我都需要运行脚本以仅显示更新的新行而不是旧的退出行。

【问题讨论】:

  • 为清楚起见,请显示示例数据和所需结果。

标签: sql reporting-services


【解决方案1】:

在数据中添加批号,然后您可以查询数据,只返回最新的批次。像这样的。

插入期间

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)

【讨论】:

    【解决方案2】:

    使用 Date 函数查询表以显示过去 24 天的输出。

    【讨论】:

      【解决方案3】:

      如果你有 oracle 数据库,那么你可以使用闪回功能来获取这些数据。

      链接了解更多详情 https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-26
        • 2020-11-16
        • 1970-01-01
        • 2013-09-16
        • 1970-01-01
        • 2020-05-22
        • 2020-04-18
        • 2012-03-11
        相关资源
        最近更新 更多