如果不想用第三方,那就在DBGrid中显示带合计的数据集,如 select a,b from table union select sum(a),sum(b) from table
用SUN阿.. 再不行?就自己用循环去写.
朋友:select a,b from table union select sum(a),sum(b) from table 不行 我是这样统计记录总数的: Edit1.Text := IntToStr(self.DBGrid1.DataSource.DataSet.RecordCount); 我想也可以用FieldValues这个,但是我不知道怎么写................
self.DBGrid1.DataSource.DataSet.RecordCount是统计记录的总条数,不是你要的某个字段的相加值 SQL应该这么写 select a,b,Sum(a) AS Sum_A from table Group By a,b 最后只要self.DBGrid1.DataSource.DataSet.FieldByName('Sum_A').AsString就得到了相加值
如果不用二楼的方法 则只能用循环写了! var ZHJ : Double; //总合计:ZHJ := 0; with DBGrid1.DataSource.DataSet do begin First; while not Eof do begin ZHJ := ZHJ + FieldByName('要统计的字段名').AsFloat; Next; end; end;Edit1.Text := FloatToStr(ZHJ);
var ZHJ : Double; //总合计: begin ZHJ := 0; with DBGrid1.DataSource.DataSet do begin First; while not Eof do begin ZHJ := ZHJ + FieldByName('allinvest').AsFloat; Next; end; end;Edit1.Text := FloatToStr(ZHJ); end; 这个程序不能通过,但是还是不对,再帮忙看看哪个
select a,b from table
union
select sum(a),sum(b) from table
再不行?就自己用循环去写.
union
select sum(a),sum(b) from table
不行
我是这样统计记录总数的:
Edit1.Text := IntToStr(self.DBGrid1.DataSource.DataSet.RecordCount);
我想也可以用FieldValues这个,但是我不知道怎么写................
SQL应该这么写
select a,b,Sum(a) AS Sum_A from table Group By a,b
最后只要self.DBGrid1.DataSource.DataSet.FieldByName('Sum_A').AsString就得到了相加值
则只能用循环写了!
var
ZHJ : Double; //总合计:ZHJ := 0;
with DBGrid1.DataSource.DataSet do
begin
First;
while not Eof do
begin
ZHJ := ZHJ + FieldByName('要统计的字段名').AsFloat;
Next;
end;
end;Edit1.Text := FloatToStr(ZHJ);
我现在已经查询出来我要统计的记录:
但是你说的??遍历数据集中的所有记录,把你要求和的字段值加具体怎么实现
谢谢
能加加我的QQ吗?谢谢398934056
谢谢你写的程序。
ZHJ : Double; //总合计:
begin
ZHJ := 0;
with DBGrid1.DataSource.DataSet do
begin
First;
while not Eof do
begin
ZHJ := ZHJ + FieldByName('allinvest').AsFloat;
Next;
end;
end;Edit1.Text := FloatToStr(ZHJ);
end;
这个程序不能通过,但是还是不对,再帮忙看看哪个