ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Text :='SELECT (SHOSETB.price_Query - SELLTB.price_Query) AS av FROM SHOSETB INNER JOIN SLLTB  ON SHOSETB.S_ID = SELLTB.S_ID  WHERE  S_ID = '''+Edit1.Text+'''';
  ADOQuery1.Open;
  ADOQuery1.Active :=TRUE;查询两个表:SHOSETB,SELLTB,当 SHOSETB.S_ID , SELLTB.S_ID等于Edit1.Text时,返回SHOSETB.price_Query - SELLTB.price_Query 之差的结果。上面的语句错在哪里,请朋友指示一下,谢谢

解决方案 »

  1.   

    'SELECT (SHOSETB.price_Query - SELLTB.price_Query) AS av FROM SHOSETB INNER JOIN SLLTB ON SHOSETB.S_ID = SELLTB.S_ID WHERE SELLTB.S_ID = '+QuotedStr(Edit1.Text)首先你要指明S_ID 的来处,如果S_ID 不是字符型字段,等好后面就不用加引号
      

  2.   

    1楼是正确的,不过是否查询到数据那是另外一回事了WHERE S_ID 这是使用字段模糊不清语法错误
    因为S_ID在2个表中都存在,所以你要指定是那一个表的,比如WHERE SELLTB.S_IDADOQuery1.SQL.Text :='SELECT (A.price_Query - B.price_Query) AS av FROM SHOSETB A INNER JOIN SLLTB B 
    ON A.S_ID = B.S_ID WHERE A.S_ID = '+Quotedstr(Edit1.Text);
      

  3.   

      ADOQuery1.SQL.Text :='SELECT (A.price_Query - B.price_Query) AS av FROM SHOSETB A LEFT JOIN SLLTB B 
    ON A.S_ID = B.S_ID WHERE A.S_ID = '+Quotedstr(Edit1.Text);
      

  4.   

    条件中没有指明SID是哪个表的
      

  5.   

    确认一下SHOSETB.S_ID与SELLTB.S_ID 的数据类型是否一致?
    还有SHOSETB.price_Query 与 SELLTB.price_Query的数据类型。
      

  6.   

    问题解决 :
     ADOQuery1.SQL.Text :='SELECT (A.price_Query - B.price_Query) AS av FROM SHOSETB A LEFT JOIN SLLTB B 
    ON A.S_ID = B.S_ID WHERE A.S_ID = Edit1.Text';把Quotedstr去掉就OK拉!谢谢兄弟们!