你的sql语句中mport2和mynumber的关联关系在哪?table.SQL.Add('update import2');
table.SQL.Add('set import2.number=import2.number-mynumber.number');
table.SQL.Add('from mynumber ');            //要有
table.SQL.Add('where import2.关联字段=mynumber.关联字段 AND ');  //这两句
table.SQL.Add(' goodid in (select goodid from mynumber');
table.SQL.Add('where mykey='1234')');

解决方案 »

  1.   

    import2.number-mynumber.number这是什么意思?你要减的是mynumber表中的第几个纪录的number?肯定不对,说明你的目的。
      

  2.   

    哦,还有一个地方要改table.SQL.Add('update import2');
    table.SQL.Add('set import2.number=import2.number-mynumber.number');
    table.SQL.Add('from mynumber ');            //要有
    table.SQL.Add('where import2.关联字段=mynumber.关联字段 AND ');  //这两句
    table.SQL.Add(' import2.goodid in (select goodid from mynumber ');//此处也有改动
    table.SQL.Add('where mykey='1234')');还有其他的形式
      

  3.   

    例如
    mynumber表 mykey  goodid  number
              1234    1        10
              1234    2        5
              2345    4        10
    import2表  goodid  number
                 1       100
                 2        100
                 3        90
    我希望对先mynumber表根据mykey查找找到goodid
    然后根据goodid对import2表修改,修改的结果如下
                goodid   number
                 1        100-10
                2         100-5
                3         90
      

  4.   

    精简一下:table.SQL.Add('update import2');
    table.SQL.Add('set import2.number=import2.number-mynumber.number');
    table.SQL.Add('from mynumber ');            //要有
    table.SQL.Add('where import2.goodid =mynumber.goodid AND ');  //这两句
    table.SQL.Add(' mynumber.MYKEY=1234');//此处也有改动前面我写的最后一个好象有括号问题,自己改一下吧
      

  5.   

    总之,最后生成的SQL语句应该是
    update import2
    set import2.number=import2.number-mynumber.number
    from mynumber 
    where import2.goodid =mynumber.goodid AND 
    mynumber.MYKEY='1234'
    或者其他等效语句