[人员信息表]
人员Id  姓名   岗位  性别  部门  年龄  管理级别   学历  政治面貌   出生日期  籍贯    民族  ...
001     张三   经理   男    A      40    干部     本科   党员      1970      天津    苗族
002     李四   客服   女    B      23    员工     硕士   预备党员  1989      上海    汉族
003     王五   店长   男    C      27    干部     大专   共青团员  1983      重庆    藏族
004     王一   保安   女    E      32    工人     中专   群众      1981      山西    傣族
004     小李   司机   男    F      25    工人     高中   团员      1987      北京    汉族
005     小张   司机   男    F      38    工人     初中   群众      1975      山东    汉族
...     ...    ...    ...   ...    ...   ...      ...    ...        ...       ...    ...假定以上数据为一张SQL2000的 '人员信息表'的部分字段,现在我想要用sql的查询语言来实现交叉表表的汇总信息,让它显示为下面格式的一张汇总交叉报表:请问这个SQL的具体查询语言该怎样来写才能实现呢?如那位高手/大侠能帮小弟做出来,定当感激不尽啊!!!
哦:如能做出的话,我的QQ:912478949 QQ邮箱为:912478949qq.com! 邮箱为:[email protected] 小弟再次谢过!!!!!!!!
 工种/岗位  小学  初中  高中  大专  本科  硕士  党员  预备党员  共青团员  团员  群众
 经理       ...  ...   ...   ...   ...   ...   ...   ...       ...       ...   ...
 客服       ...  ...   ...   ...   ...   ...   ...   ...       ...       ...   ...
 店长       ...  ...   ...   ...   ...   ...   ...   ...       ...       ...   ...
 保安       ...  ...   ...   ...   ...   ...   ...   ...       ...       ...   ...
 司机       ...  ...   ...   ...   ...   ...   ...   ...       ...       ...   ...
 
说明:这就是根据以上的[人员信息表]的,用SQL查询出来的结果汇总表,其中“...”表示具体查询出来的汇总数据。
比如:司机这个岗位查询出来的有多少个司机是小学学历,有多少个司机是初中学历、有多少个司机是高中学历、有多少个司机是大专学历、、、、、有多少个司机的政治面貌为党员、、、有多少个司机的政治面貌为群众、、、、、、、、!

解决方案 »

  1.   


    SELECT 岗位
    ,CASE 学历 WHEN '小学' THEN 1 ELSE 0 END
    ,CASE 学历 WHEN '初中' THEN 1 ELSE 0 END
    ,CASE 学历 WHEN '高中' THEN 1 ELSE 0 END
    ,CASE 学历 WHEN '大专' THEN 1 ELSE 0 END
    ,CASE 学历 WHEN '本科' THEN 1 ELSE 0 END
    ,CASE 学历 WHEN '硕士' THEN 1 ELSE 0 END
    ,CASE 政治面貌 WHEN '党员' THEN 1 ELSE 0 END
    ,CASE 政治面貌 WHEN '预备党员' THEN 1 ELSE 0 END
    ,CASE 政治面貌 WHEN '共青团员' THEN 1 ELSE 0 END
    ,CASE 政治面貌 WHEN '团员' THEN 1 ELSE 0 END
    ,CASE 政治面貌 WHEN '群众' THEN 1 ELSE 0 END
    FROM 表1 GROUP BY 岗位
      

  2.   

    SELECT 岗位
    ,SUM(CASE 学历 WHEN '小学' THEN 1 ELSE 0 END)
    ,SUM(CASE 学历 WHEN '初中' THEN 1 ELSE 0 END)
    ,SUM(CASE 学历 WHEN '高中' THEN 1 ELSE 0 END)
    ,SUM(CASE 学历 WHEN '大专' THEN 1 ELSE 0 END)
    ,SUM(CASE 学历 WHEN '本科' THEN 1 ELSE 0 END)
    ,SUM(CASE 学历 WHEN '硕士' THEN 1 ELSE 0 END)
    ,SUM(CASE 政治面貌 WHEN '党员' THEN 1 ELSE 0 END)
    ,SUM(CASE 政治面貌 WHEN '预备党员' THEN 1 ELSE 0 END)
    ,SUM(CASE 政治面貌 WHEN '共青团员' THEN 1 ELSE 0 END)
    ,SUM(CASE 政治面貌 WHEN '团员' THEN 1 ELSE 0 END)
    ,SUM(CASE 政治面貌 WHEN '群众' THEN 1 ELSE 0 END)
    FROM 表1 GROUP BY 岗位
      

  3.   

    SELECT 岗位
    ,SUM(CASE 学历 WHEN '小学' THEN 1 ELSE 0 END)         as '小学'
    ,SUM(CASE 学历 WHEN '初中' THEN 1 ELSE 0 END)         as '初中'
    ,SUM(CASE 学历 WHEN '高中' THEN 1 ELSE 0 END)         as '高中'
    ,SUM(CASE 学历 WHEN '大专' THEN 1 ELSE 0 END)         as '大专'
    ,SUM(CASE 学历 WHEN '本科' THEN 1 ELSE 0 END)         as '本科'
    ,SUM(CASE 学历 WHEN '硕士' THEN 1 ELSE 0 END)         as '硕士'
    ,SUM(CASE 政治面貌 WHEN '党员' THEN 1 ELSE 0 END)     as '党员'
    ,SUM(CASE 政治面貌 WHEN '预备党员' THEN 1 ELSE 0 END) as '预备党员'
    ,SUM(CASE 政治面貌 WHEN '共青团员' THEN 1 ELSE 0 END) as '共青团员'
    ,SUM(CASE 政治面貌 WHEN '团员' THEN 1 ELSE 0 END)     as '团员'
    ,SUM(CASE 政治面貌 WHEN '群众' THEN 1 ELSE 0 END)     as '群众'
    FROM 表1 GROUP BY 岗位