两个表的结构一样。需要从一个表中取出一部份数插到另一个表中。不想一条一条插。记得有个inser select 还是 select insert的用法。请指教。另外,表结构中有一个自动编号的主关键字,是否会有影响???
表1:orderid (主关键字,自动编号),OrderNo,ProNo,Mount,CreateTime表1:order_backid (主关键字,自动编号),OrderNo,ProNo,Mount,CreateTime
现在需要以创建时间为条件从order表中取出一部分数据放到order_back帮写个sql语句。谢过先。先写出来的分数高。来者有份....

解决方案 »

  1.   

    insert into order_back (id,OrderNo,ProNo,Mount,CreateTime) select id,OrderNo,ProNo,Mount,CreateTime from order
      

  2.   

    还有一个小需求,如果要把每条数据的Mount都加10可不可以用这样的写法insert into order_back (id,OrderNo,ProNo,Mount+10,CreateTime) select id,OrderNo,ProNo,Mount,CreateTime from order
      

  3.   

    你手上没有Delphi吗?呵呵,试试不就知道了?
      

  4.   

    因为id是自动编号的。能不能不取id,让其在order_back中自动编号呢?
      

  5.   

    从对SQL语句的理解来说这样是行的...
    不过我也没试过...
      

  6.   

    str1:= 'insert into order_back (OrderNo,ProNo,Mount+10,CreateTime) select OrderNo,ProNo,Mount,CreateTime from call where  id >= 1 and id <= 10 ';ADOQuery3.SQL.Clear;
    ADOQuery3.SQL.Text:=str1;
    ADOQuery3.ExecSQL;为什么说insert语法错误啊?!!!
      

  7.   

    SET IDENTITY_INSERT orderback OFF
    insert into order_back (id,OrderNo,ProNo,Mount+10,CreateTime) select id,OrderNo,ProNo,Mount,CreateTime from order
    SET IDENTITY_INSERT orderback ON为了确保数据一致性 orderback表不能和order表的id有同样的值
      

  8.   

    str1:= 'insert into order_back (OrderNo,ProNo,Mount+10,CreateTime) select OrderNo,ProNo,Mount,CreateTime from order where  id >= 1 and id <= 10 ';ADOQuery3.SQL.Clear;
    ADOQuery3.SQL.Text:=str1;
    ADOQuery3.ExecSQL;为什么说insert语法错误啊?!!!
      

  9.   

    str1:= 'insert into order_back (OrderNo,ProNo,Mount, CreateTime) select OrderNo,ProNo,Mount+10,CreateTime from call where  id >= 1 and id <= 10 ';
      

  10.   

    thank you everyone!已经可以了。delphi在做数据库方面真的还是满好用的。再次谢谢。一会就会结掉。