有一表用QUERY1相连,在DBGRID1中显示如下:号码   重量    价格
aaa    12      20
bbb    13      30
ccc    14      40.................
现在想在最行一行显示总计   39     90
请问该怎样做?

解决方案 »

  1.   

    好象不行,不过,DBGRIDEH中可以。
      

  2.   

    select 号码, 重量, 价格
      from yourtable
     union
    select '总计',sum(重量),sum(价格)
      from yourtable
      

  3.   

    zl:=0;
    jg:=0;
    with query1 do
    begin
    first;
    for i:=1 to recordcount do
    begin
    j:=1;
    a[j]:=fieldvalues['重量']; b[j]:=fieldvalues['价格'];
    next;
    j:=j+1;k:=k+1;
    end;
    for i:=1 to j do
    begin
    zl:=a[i]+zl;jg:=b[i]+jg;
    end;close;
    sql.clear;
    sql.add('insert into ??(重量,价格) values(zl,jg) ');
    end;
      

  4.   

    SELECT 号码,SUM(重量), SUM(价格)
    FROM table
    GROUP BY 号码 WITH ROLLUP总计以NULL来代替的!可以在前台用静态字段的OnGetText事件里处理一下就行了!
    不知这样你是否满意!
      

  5.   

    TO: Snakeguo(楠) (充实快乐地过好每一天) 
          DBEDITEH在那儿?D6中有这个控件吗?
    TO: waller(七嘴八舌) 
         敢问在D中怎么样把SUM(重量)赋给一个变量????
      

  6.   

    select Code = 号码,
            Weight = 重量,
            Price = 价格
     from   yourtable
     union
     select Code = '总计',
           Weight = sum(重量),
           Price = sum(价格)
     from  yourtable这样你取总计时,只要  if DataSet.FieldByName('Code').AsString = '总计' then
      begin
           TotalWeight := DataSetFieldByName('Weight').AsInteger;
           TotalPrice := DataSetFieldByName('Price').AsInteger;
      end;
      

  7.   

    有点小错误,更正一下
           TotalWeight := DataSet.FieldByName('Weight').AsInteger;
           TotalPrice := DataSet.FieldByName('Price').AsInteger
      

  8.   

    到http://www.51delphi.com/下载吧,那儿有Ehlib 2.5即DBEDITEH,
    其实应该如此写即可:
    select 号码, 重量, 价格
      from yourtable
     union
    select '总计' as 号码,sum(重量) as 重量 ,sum(价格) as 价格
      from yourtable
    你就可以通过fieldbyname('重量').value 访问 sum(重量) 了
      

  9.   

    用breezing(网上的小鱼) 的方法可以实现,或者用StringGrid也可以,实在不行用临时表。
    DBGridEh是一个第三方控件,也能实现。不过我猜你没有装。
    总之解决的方法很多很多。