从最新日期 table 到当前日期 SQL 服务器查询插入间隔日期

Insert into with interval date from lastest date other table to current date SQL Server query

我想从其他 table 上的日期参数获取数据,并在 table.

上使用它

例如,我有一个 Table_A 看起来像这样:

和 Table_B 像这样:

从 Table A 和 B,我想在 Table_A.last_job_updateGETDATE() 的最后日期之间插入参数,并使用 Table_B 的数据,并将其插入 Table_C.

这是我的 SQL 声明:

SET IDENTITY_INSERT test.Table_A ON

INSERT INTO test.table_A (product_id, product_name, status, last_update)
    SELECT product_id, product_name, status, last_update 
    FROM test.Table_B
    WHERE last_update = (SELECT MAX(last_update) 
                         FROM test.PF_HKMN_TEST_TABLE 
                         WHERE Table_B.product_name = Table_B.product_name)

SET IDENTITY_INSERT test.table_A OFF;

从我上面的SQL语句中只能得到具体日期,不能得到当前日期范围内的日期。

解决方案

table_A:来源

table_B:日期参数

table_C:目的地

DECLARE @Date DATETIME
SET @Date = GETDATE()

SET IDENTITY_INSERT test.table_C ON;

INSERT INTO test.table_C (product_id, product_name, status, last_update)
SELECT product_id, product_name, status, last_update
FROM test.table_A
WHERE last_update BETWEEN (select max(last_job_update) FROM test.table_B) and Date;

SET IDENTITY_INSERT test.table_C OFF;

对不起。我不是很明白你想要什么。什么是tablePF_HKMN_TEST_TABLE? 我试着猜猜你想要什么。

WITH cteTestA
     AS (SELECT product_id, 
                last_job_update, 
                ROW_NUMBER() OVER(PARTITION BY product_id
                ORDER BY last_job_update DESC) AS rn
         FROM Table_A)
     INSERT INTO table_C
            (product_id, 
             product_name, 
             STATUS, 
             last_update
            )
     SELECT b.roduct_id, 
            b.product_name, 
            b.STATUS, 
            b.last_update
     FROM Table_B AS b
          INNER JOIN cteTestB AS ctea
          ON ctea.product_id = b.product_id
             AND b.rn = 1
     WHERE b.last_update BETWEEN ctea.last_job_update AND GETDATE();