█ █ 紧急求教:如何利用SQL汇总,汇总结果显示在DBGRID里█ █
基本情况:DBGRID1,ADOQUERY1,ACCESS
数据表:aqcgmx(采购明细表) agcghz(采购汇总表)
采购明细表aqcgmx:(实际明细和字段比较多,下面的只供参考)
商品名称pm 数量sl 单价dj 金额 经受人jsr 供应商GHS 采购日期cgrq
商品1 100 0.5 50 小W A公司 2006-12-01
商品2 200 0.6 120 小Z B公司 2006-12-02
商品1 100 0.5 50 小W A公司 2006-12-03
商品2 200 0.6 120 小Z B公司 2006-12-04
商品3 300 0.7 210 小Z C公司 2006-12-05
采购汇总表agcghz:(实际明细和字段比较多,下面的只供参考)
商品名称 数量 单价或平均价格 金额je
商品1 200 0.5 100
商品2 400 0.6 240
商品3 300 0.7 210
=========================================
总计: 900 550
要求:
1、将“采购明细表”里的数据汇总,批量录入到“采购汇总表”里,并显示在DBGRID里
2、汇总是按条件汇总,如按商品名称汇总。
3、汇总显示在DBGRID里,要总计,显示在EDIT1.TEXT里。
谢谢前辈们。
我原来的方法:
先用SQL查询满足条件的“采购明细表”,然后FOR循环录入到“采购汇总表”里,但数据多了处理很慢!
[解决办法]
上面好象有误,忘记求和了
ADOQUERY1.close;
ADOQUERY1.sql.text:= 'insert into agcghz(商品名称,单价或平均价格,数量,金额) '
+ 'select pm,dj,sum(sl) as sl, sum(je) as je from aqcgmx group by pm,dj '
ADOQuery1.ExecSQL;
ADOQUERY1.close;
ADOQUERY1.sql.text:= 'select sum(je) from agcghz ';
ADOQUERY1.open;
edit1.text:=ADOQUERY1.fields[0].asstring;
ADOQUERY1.close;
ADOQUERY1.sql.text:= 'select * from agcghz ';
ADOQUERY1.open;