select sum('字段名') from table ;
取出后付给label;
或者你作一个计算列。

解决方案 »

  1.   

    with adoquery1 do
    begin
    close;
    sql.clear;
    sql.add('select 金额,sum(金额) as zongji from table1');
    open;
    end;
    label2.caption:=adoquery1.fieldbyname('zongji').asstring;
      

  2.   

    谢谢上面两位,我的意思是金额是不存在的,是一个临时的变量,然后在标签中显示出汇总金额,我用下面程序写完之后,只是汇总当前的金额,没有实现累加。
    procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject);
    var
     tota:real;
    begin
     tota:=0;
     whdata.pd_temp.Edit;
     tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
     label3.Caption:=floattostr(tota);
     next;
     end;
    end.
    各位,帮助我看一下。
      

  3.   

    当然不能累加,你代码中的NEXT是没有意义的,你应该用一个循环,如:
    WHILE NOT WHDATA.PD_TEMP.EDIT.EOF DO
    BEGIN
    ...
    tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
    NEXT;
      

  4.   

    Query1.Close;
    Query1.SQL.Text:='Select Sum(字段) T from Table' 
    Query1.Open;
    Label1.Caption:=Query1.Fields[0].AsString;
      

  5.   

    你看,我用循环了,还是不能累加。
    procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject);
    var
     tota:real;
    begin
     tota:=0;
     while not whdata.pd_temp.Eof do
     whdata.pd_temp.First;
     begin
     whdata.pd_temp.First;
     whdata.pd_temp.Edit;
     tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
     label3.Caption:=floattostr(tota);
     next;
     end;
     end;
    end.