数据库中有表 MN,表中有字段:dates(日期) inmoney(借款金额)
我是想在一个指定的时间段里面查询一共借款多少,但下面的代码运行之后一直提示,ADOQuery1.Fields找不到'inmoney'字段,这是什么愿意呢?下面的代码错在哪里啊?
本人是新手,请高手帮忙看一下: 
var
 sql,st,ed:string;
begin
 st:=Datetostr(DateTimePicker1.Date);
 ed:=Datetostr(DateTimePicker1.Date); ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 sql:='SELECT SUM(inmoney) FROM  MN WHERE dates BETWEEN :st AND :ed' ;
 ADOQuery1.SQL.Add(sql);
 EDit3.Text:= ADOQuery1.FieldByName('inmoney').AsString;
 ADOQuery1.Open;
end;

解决方案 »

  1.   

    sql:='SELECT SUM(inmoney) FROM MN WHERE dates BETWEEN :st AND :ed' ;
    改成
    sql:='SELECT SUM(inmoney) as inmoney FROM MN WHERE dates BETWEEN :st AND :ed' ;
      

  2.   

    1、SUM(inmoney)  as inmoney
    2、参数不赋值吗?
    3、 应该先OPEN吧
    ADOQuery1.Open;EDit3.Text:= ADOQuery1.FieldByName('inmoney').AsString;
        
      

  3.   

    现在没有报错啦,但是EDit3.Text里面是空的,并没有显示查询结果的值,这是为什么呢?
      

  4.   

    var
    sql,st,ed:string;
    beginADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    sql:='SELECT SUM(inmoney) as inmoney FROM MN WHERE dates >= '''+Datetostr(DateTimePicker1.Date)+''' AND dates <='''+Datetostr(DateTimePicker2.Date)+'''' ;
    ADOQuery1.SQL.Add(sql);
    ADOQuery1.Open;
    EDit3.Text:= ADOQuery1.FieldByName('inmoney').AsString;
    end;应该是DateTimePicker2.Date 吧,完整了
      

  5.   

    谢谢 xuxugr 帮忙,基本上没问题,但是有时候会出先计算有误,比如我选“2010-3-1”——“2010-3-2”显示没有数据,是正确的。但当我选择“2010-3-1”——“2010-3-3”时,则是统计了所有的数据,这时间段是没有借款的,这是为什么呢?
      

  6.   

    奇怪了,我的也报错误
    [错误] UEmailFrm_Edit_Del.pas(351): Not enough actual parameters
    [错误] UEmailFrm_Edit_Del.pas(351): Missing operator or semicolon
    [错误] UEmailFrm_Edit_Del.pas(352): Not enough actual parameters
    [错误] UEmailFrm_Edit_Del.pas(352): Missing operator or semicolon
    [错误] UEmailFrm_Edit_Del.pas(353): Not enough actual parameters
    [错误] UEmailFrm_Edit_Del.pas(353): Missing operator or semicolon
    [致命错误] QXGLForm.pas(79): Could not compile used