用的什么库?
试试va:='insert into tj(资产编号,数量) as ';
另外注意into 和空格

解决方案 »

  1.   

    va:='insert into tj(资产编号,数量)';
      

  2.   

    应该是:
    var  
       va:string;
    begin  
       dbgrid1.datasource:=datasource2;
       va:='insert tj(资产编号,数量)'
          +' select lk.资产编号,lk.数量-bs.数量 from  lk,bs';
          +' where  lk.资产编号=bs.资产编号';
       query1.close;
       query1.sql.clear;
       query1.sql.add(va);
       query1.EXECSQL;
    end;
      

  3.   

    呵呵,不好意思,
    SQL语句正确。
      

  4.   

    应该是:
    var  
       va:string;
    begin  
       dbgrid1.datasource:=datasource2;
       va:='insert into tj(资产编号,数量)'
          +' select lk.资产编号,lk.数量-bs.数量 from  lk,bs';
          +' where  lk.资产编号=bs.资产编号';
       query1.close;
       query1.sql.clear;
       query1.sql.add(va);
       query1.EXECSQL;
    end;
      

  5.   

    而且SQL语句也写错了,应该这样写:
    insert into 表名(字段1,字段2) Values(值1,值2)Insert语句是不需要返回结果集的,要用Query.Execsql来执行SQL语句。
      

  6.   

    这样写不够好,建议用两个Query,一个 用于写语句,另一个 用于选择
      

  7.   

    数量=(lk.数量-bs.数量) 是否需要新建一张表来存放这个字段。
      

  8.   

    query1.ExecSQL;
    应是  INSERT  INTO