我有一个通过计算出来的新增列
想把这个表里边的这个列求和,怎么写?怎么显示出来?在一个dbgri里边

解决方案 »

  1.   

    在ONCACULATEFIELD中写入
    with dataset do
    begin
     fieldbyname('newcolumn').asfloat:=
     fieldbyname('column1').asfloat+
     fieldbyname('column2').asfloat;
    end;
    显示出来方法同其它字段完全相同
      

  2.   

    呵呵
    显示出SUM()来用DBGRID好象不行,
    用EHLIB控件吧
      

  3.   

    因为你的计算列是通过计算出来的,所以,你想得到它的和,只有进行重复计算:tmp := 0.00;
    with dataset do
    begin
     first;
     while not eof do
     begin
     tmp :=
     fieldbyname('column1').asfloat+
     fieldbyname('column2').asfloat;{假设这就两个列就你的计算列的计算公式}
      next;
      end;
    end;
      

  4.   

    1、做book
    2、从头到尾求和
    3、其余自己想办法 回复人: lxl(蚊蚊) ( ) 信誉:100  2003-01-24 14:05:00  得分:0 
     
     
      呵呵
    显示出SUM()来用DBGRID好象不行,
    用EHLIB控件吧
      
     
      

  5.   

    DXDBGRID/DBGRIDEH
    即昆组件/EHLIB组件
    在WWW。51DELPHI。COM下载
    只要设置属性就可以了,看看它们带的DEMOS吧
      

  6.   

    查询得时候直接生成不行吗
    select a,b,c,a+b+c as sum from ....
      

  7.   

    select field1,field2,field3 from tablename 
    union
    select '' as field1,'' as field2 ,sum(field3) as field3 from tablename group by field1,field2
    或者用 DbGridEh ,很方便的
      

  8.   

    不在dbgri显示的话,我想传递出来呢,我用adoquery
    把和显示在label上,怎么版呢?
      

  9.   

    select id from tablename
    union
    select sum(id) as id from tablename
    和dbgrid邦定
    就有了就和列拉
      

  10.   

    with ADOQuery1 do
    begin
      Sql.Text := 'select Sum(FieldName) as k from tablename ' ;
      Open ;
      Label1.Caption := FieldByName('k').AsString ;
    end ;
      

  11.   

    因为你的计算列是通过计算出来的,所以,你想得到它的和,只有进行重复计算:tmp := 0.00;
    with dataset do
    begin
     first;
     while not eof do
     begin
     tmp :=
     fieldbyname('column1').asfloat*
     fieldbyname('column2').asfloat;{假设这就两个列就你的计算列的计算公式}
      next;
      end;
    end;如果用第三控件的话,你用InfoPower3000的TWWDBGrid就可以了,非常
    方便,在coolslob.yfkj.com有下载的
    按照 我的代码这样写难道不行吗?
      

  12.   

    用求和select sum(列名)
    或用循環逐個加!
    用DbGridEh 就更好了.