█ █ 新手求教DELPHI有关问题:关于DBGRID的查询统计(对列求和)█

█ █ 新手求教DELPHI问题:关于DBGRID的查询统计(对列求和)█ █
基本组件:DBGRID1,ADOQUERY1,EDIT1
要求:
1、将满足条件的数据查询出来,显示在DBGRID里,并在DBGRID下方的合计栏里EDIT1.TEXT里显示所合计的金额,就是对列求和。
2、不是对行求和
3、不是对所有数据求和
4、要在DBGRID里显示全部字段,不是只显示金额项

如:单据dh         金额je     经受人jsr         供应商GHS
        1001               100             小W        A公司
        1002               200             小Z      B公司

。。。。。。。。。
——-——————
      合计金额:300

我原来的方法是:
1   先查询满足条件的数据
dm1.AQcgzz.SQL.Clear;
dm1.AQcgzz.SQL.Add( 'SELECT   * ');
dm1.AQcgzz.SQL.Add( 'FROM   cgzwz ');
dm1.AQcgzz.SQL.Add( 'where   dh   like   ' '% '+edit3.text+ '% ' ' ');
dm1.AQcgzz.SQL.Add( 'and   ghs= ' ' '+dblookupcombobox1.text+ ' ' ' ');
dm1.AQcgzz.SQL.Add( 'and   jsr= ' ' '+edit4.text+ ' ' ' ');
dm1.AQcgzz.SQL.Add( 'order   by   dh ');
dm1.AQcgzz.Open;
2   再统计
FOR   循环统计
缺点:数据多了,速度很慢,所以想改进。

谢谢大哥们帮我看看。如何写代码。

------解决方案--------------------
dm1.AQcgzz.SQL.Clear;
dm1.AQcgzz.SQL.Add( ' SELECT SUM(je) ');
dm1.AQcgzz.SQL.Add( 'FROM cgzwz ');
dm1.AQcgzz.SQL.Add( 'where dh like ' '% '+edit3.text+ '% ' ' ');
dm1.AQcgzz.SQL.Add( 'and ghs= ' ' '+dblookupcombobox1.text+ ' ' ' ');
dm1.AQcgzz.SQL.Add( 'and jsr= ' ' '+edit4.text+ ' ' ' ');
dm1.AQcgzz.Open;
EDIT1.TEXT:=dm1.AQcgzz.Fields[0].AsString;
dm1.AQcgzz.close;
dm1.AQcgzz.SQL.Clear;
dm1.AQcgzz.SQL.Add( 'SELECT * ');
dm1.AQcgzz.SQL.Add( 'FROM cgzwz ');
dm1.AQcgzz.SQL.Add( 'where dh like ' '% '+edit3.text+ '% ' ' ');
dm1.AQcgzz.SQL.Add( 'and ghs= ' ' '+dblookupcombobox1.text+ ' ' ' ');
dm1.AQcgzz.SQL.Add( 'and jsr= ' ' '+edit4.text+ ' ' ' ');
dm1.AQcgzz.SQL.Add( ' order by dh ');
dm1.AQcgzz.Open;