原来的问题是这样的:
-------------------
表:
----------------
tabel1
datetime   province  area  times  money  givemoney
2002-06    beijing    bj   5562   586    586tabel2
datetime   province  area  minute fee
2002-06    beijing   bj    5378   512
2002-06    beijing   bj    312    87
----------------
这样写可以找到记录,但改成上边的查询就不成了。
select tabel1.datetime as 日期,tabel1.province as 省市,tabel1.time 用户时长, 
       tabel1.moeny as 用户发生金额,table1.givemoeny as 付款金额,
       B.Minute AS 系统时长,
       B.Fee AS 系统金额,
       ((B.fee-table1.givemoney)/B.fee)*100 as 差异率
from tabel1,
     (SELECT datetime,province,area,
             sum(Minute) As Minute,Sum(Fee) As Fee 
      FROM Table2
      Group by datetime,province,area) B
where tabel1.datetime=B.datetime
      and tabel1.province=B.province
      and tabel1.area=B.area

解决方案 »

  1.   

    太长了.
    有几种可能:
    1本身就没有符合条件的记录.解决方式:
    2语句不规范.建议完成后用showmessage(adoquery1.sql.text)来获取一下整个语句查看一下对不对.
    3没有OPen,怎么获取数据.解决方法:加入Open;
      

  2.   

    用showmessage(adoquery1.sql.text)没有错啊。
    我在 sql server试了在combobox里的选项,全能找到记录。
      

  3.   

    可能的原因:
      标准ADO(用语不当,不知正确的应为何)可能不支持如此复杂的语句。
    建议把SQL修改成比较标准的试一下,
         from tabel1,
         (SELECT datetime,province,area,
                 sum(Minute) As Minute,Sum(Fee) As Fee 
          FROM Table2
          Group by datetime,province,area) B
    这样的语句在SQL_92中不支持吧?
      

  4.   

    with adoquery1 do
    begin
         Close;
         SQL.Clear; // 不会是这句的问题吧?
         SQL.Add....
         ....
    end;
      

  5.   

    to  johnsonrao(johnson) & everbody
    多谢大家的回答,问题解决了,方法嘛,我不好意思说。
    我是边喷血边解决的(dataset......),然后Faint!
    白浪费了半天时间,还加了一个多小时的班!
    哎~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~