在sql中将数据从一个表移动到另一个表

时间:2013-07-02 10:16:48

标签: sql sql-server sqlite

可能会提出类似的问题但不完全一样。

我需要一个简单的解决方案,我的sqlite数据库将数据从一个表移动到另一个具有匹配列的表,新表应该具有最大的transid +1。

例如:在我的tblsales_temp表格中,我有字段:transid, transdate, amount,status,在我的tblsales表格中,我有相同的字段:transid,transdate,amount,status 所以,我想将数据从tblsales_temp移动到tblsales,但tblsales中的transid应该是来自tblsales +1的transid的最大值。

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

尝试:

INSERT INTO tblsales
(transid, transdate, amount, status)
SELECT MAX(transid) + 1, transdate, amount, status
FROM tblsales_temp

答案 1 :(得分:0)

我想你想要这个:

INSERT INTO tblsales
  (transid, transdate, amount, status)
SELECT 
  t.transid + i.maxid,                    -- or just "i.maxid",
  t.transdate, t.amount, t.status         -- it's not clear what you want
FROM tblsales_temp AS t
  CROSS JOIN 
    ( SELECT MAX(transid) AS maxid 
      FROM tbsales
    ) AS i;