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;