0

我有 2 张桌子。一个是生产表,另一个是日报表。每日报表每天都会清空。每日报告表是生产表的子集。我想用生产表中的所有新行更新每日表。我考虑过使用 where 子句;

SELECT ftime, 
       fdate, 
       fdata, 
       fdata2 
INTO   table2 
FROM   table1 
WHERE  ftime > table2.ftime 

我运气不太好。我是 SQL 新手,我只是不确定如何解决这个问题,而且似乎在网上找不到任何关于这个特定问题的东西。

当我让它工作时,这最终会进入一个存储过程。

任何提示,提示,将不胜感激。

4

1 回答 1

1
SELECT ftime, 
       fdate, 
       fdata, 
       fdata2 
INTO   table2 
FROM   table1 
WHERE  ftime > (select MAX(ftime) from table2)
   OR  NOT EXISTS (select * FROM table2);

如果 table2 为空(例如,如果您刚刚完成了日常清除),则 table1 的所有内容都将被拉入 table2。
否则,它只会从 table1 插入ftime比 table2 中的新记录晚的新记录。

确保您在 table2.ftime 上有一个索引

于 2013-04-22T21:46:21.560 回答