delphi7,Access分类统计

初学实在搞不出来,求源码。Delphi,Access,ADOQuery 表1是明细表,表2是汇总表,怎能将表1的统计数填入表2中,类似表2(结果) 表1,表2都存在 ,不用创建新表。
表1                                           表2
No  ItemNo                            ItemNo  all
1    101                              101     
2    101                              102     
3    102                              103     
4    102                              104
5    103                              105
6    104                              总数
7    105
8    103
9    105
10   101

表2(结果)
ItemNo  all
101     3
102     2
103     2
104     1
105     2
总数    10

第一个adoquery1, 查询数据  select ItemNo, count(1) as Amount form 表1;
然后遍历adoquery1, 用adoquery2执行语句
sql := format('update 表2 set [all] = %d where ItemNo = %d', [adoquery1.fieldbyname('Amount').asinteger, adoquery1.fieldbyname('ItemNo').asinteger]);

with ADOQuery1 do  begin    //初始化ADOQuery1, 装载数据     Close;     ConnectionString := Format(AdoString, [GetCurrentDir + '\db1.mdb']);     SQL.Text := 'select ItemNo, count(1) as Amount form 表1';     Open;     First;       //初始化ADOQuery2     ADOQuery2.ConnectionString := Format(AdoString, [GetCurrentDir + '\db2.mdb']);       //遍历ADOQuery1, 使用qry2执行更新语句     while not Eof do    begin      ADOQuery2.SQL.Text := format('update 表2 set [all] = %d where ItemNo = %d', [fieldbyname('Amount').asinteger, fieldbyname('ItemNo').asinteger]);       ADOQuery2.ExecSQL;       Next;     end;   end;

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有