一下子来不及回答你这个问题,
不过你可以看看以前我对一个问题的回答,多少或许有点启发。
http://expert.csdn.net/TopicView.asp?id=5596

解决方案 »

  1.   

    to halfdream:
        看过,没看懂!to all
       帮帮我吧,大虾们。
      

  2.   

    SORRY,  我回来慢了。
    这个问题我试过了。只是那个NULL的问题搞定所以我一时没有回。
    也是用一个表辅助计算。这是一种比较常用的方法。
    先建一个辅助表:
    C     :
    style , c1 ,c2 ,c3 ,c4
    -----------------------
    1     , 1  , 0,  0,  0         (你可以把其中0改为NULL试试)
    2     , 0  , 1,  0,  0
    3     , 0  , 0,   1,  0     
    4     , 0  ,  0,  0,  1
    ------------------------
    假设原表为A     结果表为R
    则可以
    insert into R(编号,项目,型号1,金额1,型号2,金额2,型号3,金额3,型号4,金额4)
    select A.编号,A.项目,SUM(A.数量*C.C1),SUM(A.金额*C.C1),
    SUM(A.数量*C.C2),SUM(A.金额*C.C2),
    SUM(A.数量*C.C3),SUM(A.金额*C.C4),
    SUM(A.数量*C.C4),SUM(A.金额*C.C4)
    from A,C
    where A.型号=C.style
    group by A.编号,A.项目 
    其中如果用中文字段名的话.要加上引号.
    在调试的时候, 可以先把INSERT那一行去掉看看结果是否正确.
      

  3.   

    问题解决:
       我的方法是用两个Query,源表Query 加order by 项目,型号,目标Query编历
    源表对应插入数据。
       不过,这个问题解决了,随之的问题产生。(打印)>> 谢谢halfdream:你的方法我试过,
       1:在矩阵表中,如果我的型号不小于10种,那么你提供的方法会使矩阵表的字
    段冗长。
       2:其中我的源表中还有日期、人员工号等字段,日期为Where条件。
       3:你所提供的方法统计比较快。(比我快)