一个数据表及示例数据如下: 
零件代码   加工数量   单件重量 单件级数 加工工序    加工组别   批量系数  机组代码 
001        100        5                  开料       开料1组    0.5       0102001  
002        200        3         2        折弯       折弯1组    1         0102005
006        100        1         2        折弯       折弯2组    0.5       0102006
009        30         8         3        折弯       折弯2组    0.5       0102006
005        10         2                  通快       通快2组    2         0102001
009        30         2                  通快       通快1组    2         0102001
......
......
……
现在的查询是需以机组代码来分组查询。
按机组代码和加工组别分组(即以机组为单位,统计各组别的完成的工作量[即加工数量、单件重量、单件级数])。统计加工数量 = 加工数量乘以批量系数。希望得到的查询结果结构为: 
机组代码  折弯1组加工数量  折弯2组加工数量  通快1组加工数量  通快2组加工数量   开料1组加工数量 开料2组加工数量  折弯1组加工级数  折弯2组加工级数……
即将一纵向分布的数据,转换成横向分布来显示,这里不知道怎么处理,希望高手赐教,谢谢
分不够再另外开贴加分:)

解决方案 »

  1.   

    你这数据是存在于什么类型文件里的?如果是EXCEL表格中,貌似可以直接SELECT......
      

  2.   

    使用的是SQL SERVER2000数据库
      

  3.   


    ******************************
    在研究不知道用 Join 能否能实现
      

  4.   

    类似的写法,还有别的条目自己改一下即可select 机组代码,折弯1组加工数量,折弯2组加工数量,通快1组加工数量,.....
    from
    (select 机组代码,sum(加工数量*批量系数) 折弯1组加工数量 from 数据表 where 加工组别='折弯1组' group by 机组代码) a,
    (select 机组代码,sum(加工数量*批量系数) 折弯2组加工数量 from 数据表 where 加工组别='折弯2组' group by 机组代码) b,
    (select 机组代码,sum(加工数量*批量系数) 通快1组加工数量 from 数据表 where 加工组别='通快1组' group by 机组代码) c,
    ......
    where a.机组代码=b.机组代码 and b.机组代码=c.机组代码 and ......
      

  5.   

    **********************************************************************
    分步做了些测试,先将对表进行GROUP By 机组编码进行分类汇总,得出的集合结构放到一个“查询内容”表中。“临时条码表”即为上面的原始数据表。
    之后用下面的语句
    SELECT a.机组编码, b.折弯一组加工数量
    FROM (SELECT 机组编码
            FROM 查询内容) a LEFT OUTER JOIN
              (SELECT 机组编码, SUM(加工数量 * 批量系数) 折弯一组加工数量
             FROM 临时条码表
             WHERE 加工组别 = '折弯一组'
             GROUP BY 机组编码) b ON a.机组编码 = b.机组编码
    得出的结果为:
    机组代码      折弯1组加工数量
    0102005      2
    0102006      NULL
    0102001      NULL
    但再用下面的语句,来统计“折弯2组加工数量”时,提示出错:机组编码附近有语法错误。
    SELECT a.机组编码, b.折弯一组加工数量
    FROM (SELECT 机组编码
            FROM 查询内容) a LEFT OUTER JOIN
              (SELECT 机组编码, SUM(加工数量 * 批量系数) 折弯一组加工数量
             FROM 临时条码表
             WHERE 加工组别 = '折弯一组'
             GROUP BY 机组编码) b LEFT OUTER JOIN
          (SELECT 机组编码, SUM(加工数量 * 批量系数) 折弯二组加工数量
             FROM 临时条码表
             WHERE 加工组别 = '折弯二组'
             GROUP BY 机组编码) C
     ON a.机组编码 = b.机组编码 And a.机组编码=c.机组编码请高手分析下是什么原因呢?
      

  6.   

    SELECT a.机组编码, b.折弯一组加工数量,c.折弯二组加工数量 
    FROM (SELECT 机组编码 
            FROM 查询内容) a LEFT OUTER JOIN 
              (SELECT 机组编码, SUM(加工数量 * 批量系数) 折弯一组加工数量 
            FROM 临时条码表 
            WHERE 加工组别 = '折弯一组' 
            GROUP BY 机组编码) b 
    ON a.机组编码 = b.机组编码
    LEFT OUTER JOIN 
          (SELECT 机组编码, SUM(加工数量 * 批量系数) 折弯二组加工数量 
            FROM 临时条码表 
            WHERE 加工组别 = '折弯二组' 
            GROUP BY 机组编码) c 
    ON a.机组编码=c.机组编码