基本情况: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循环录入到“采购汇总表”里,但数据多了处理很慢!

解决方案 »

  1.   

    select 商品名称pm,sum(数量sl), (单价dj*数量sl)/sum(数量sl)
    from table_name 
    group by 商品名称pm好象这样就查出来了吧!
      

  2.   

    ADOQUERY1.close;
    ADOQUERY1.sql.text:='insert into agcghz(商品名称,单价或平均价格,数量,金额)'
    +'select pm,dj,sl, 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;
      

  3.   

    上面好象有误,忘记求和了
    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;
      

  4.   

    测试通过。谢谢老哥。
    再补充:
    1、如要按采购日期或供应商或其他条件进行汇总,如何写代码?
    2、在进行汇总操作的时候,要让汇总表里的部分字段的取值,复制明细表里的字段取值,该如何写?
    如:采购汇总表cghz
    商品名称PM   数量SL  单价或平均价格DJ  金额je  经手人JSR  供应商GHS 或更多字段后面的2个字段:JSR和GHS或更多字段的值如何取?一般是从明细表里复制。如何写?
    谢谢指导!
      

  5.   

    我们再怎么写都是死代码,其实都是很简单的代码,看看书,掌握这些很容易。到时候想怎么干都行。
    学学SQL,可以以SQL Server为学习平台,它的联机帮助非常了得,还是中文版
      

  6.   

    谁有SQL方面的资料啊。给我发一份哦。谢谢!
    [email protected]
    另,再帮我看看这个问题
    将表1在DBGRID里显示的数据,批量插入到表2里,如何写代码啊。
    我找了好久没找到该方面的资料哦。
      

  7.   

    我觉得,比起求助他人,楼主更应该多看些SQL书籍,打好基础,自己多动脑思考。