从最新日期 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_update
和 GETDATE()
的最后日期之间插入参数,并使用 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();
我想从其他 table 上的日期参数获取数据,并在 table.
上使用它例如,我有一个 Table_A 看起来像这样:
和 Table_B 像这样:
从 Table A 和 B,我想在 Table_A.last_job_update
和 GETDATE()
的最后日期之间插入参数,并使用 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();