close;
     sql.Clear;
     sql.Add(' insert into SSS(SS001,SS002,SS003,SS004,SS005,SS006,SS007,SS008,SS009)(select DISTINCT KC001 AS SS001,KC002 AS SS002,KC003 AS SS003,KC004 AS SS004,KC005 AS SS005, KC006 AS SS006,WS002 AS SS007,WS003 AS SS008,KH002 AS SS009 FROM SINA,PHKF');
     sql.Add(' where KC001=PH001 AND KH002=''Clarity'' AND (KC004=''001'' OR KC004=''002'' OR KC004=''003'' OR KC004=''088'')');
     SQL.Add(' DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )');

解决方案 »

  1.   

    SQL.Add(' ;DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )');
      

  2.   

    1.先在SQL的查询分析中运行一下你的语句,确定没有错!
    2.    SQL.Add(' DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )'); 这句有问题吧!应该在执行了上一句SQL之后另再执行!
      

  3.   

    放在一起执行也没关系。
    主要是第二句 SQL.Add(' ;DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )'); where条件,等号两头不是1对1关系
      

  4.   

     close; 
        sql.Clear; 
        sql.Add(' insert into SSS(SS001,SS002,SS003,SS004,SS005,SS006,SS007,SS008,SS009)(select DISTINCT KC001 AS SS001,KC002 AS SS002,KC003 AS SS003,KC004 AS SS004,KC005 AS SS005, KC006 AS SS006,WS002 AS SS007,WS003 AS SS008,KH002 AS SS009 FROM SINA,PHKF'); 
        sql.Add(' where KC001=PH001 AND KH002=''Clarity'' AND KC004 in(''001'',''002'',''003'', ''088'')');
        sql.open;
     close;
        sql.clear; 
        SQL.Add(' DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )');
        sql.exect
      

  5.   


    //try it
    SQL.Add(' ;DELETE FROM SINA  WHERE KC001 in (SELECT SSS.SS001 FROM SSS )'); 
      

  6.   

    SQL.Add(' DELETE FROM SINA  WHERE KC001=(SELECT SSS.SS001 FROM SSS )');
    SELECT SSS.SS001 FROM SSS  确保只有一条记录
      

  7.   

    谢谢大家,delete语句“=”应该改为 in 大家都找到了问题所在