SELECT *  FROM OIMEMBERINFO
/*员工表 主键 member_id*/SELECT * FROM OI_MEMBERINFO_EXTEND

/*员工扩展表, 表中EDUCATION列为学历列(0 本科, 1 硕士, 2 博士, 3 为其它 ) 关联外键在字典表 
  SYSDATADICTIONARY */SELECT * FROM OI_MEMBERORGINFO  
/*员工和部门中间表  主键 oi_org_id  员工ID member_id 部门ID  ORG_ID*/SELECT * FROM OIORGRELATIONINFO       
/*部门表   通过 主键  ORG_ID */SELECT * FROM SYSDATADICTIONARY  
/*字典表 存放 ( 本科,  硕士,  博士,  为其它) 主键 DICT_ID */查询所有部门里 本科,  硕士,  博士 学历的人数各有多少个 显示基本如下  部门一     部门二  部门三
本科     10        6        9硕士     5         1        6
博士      2         0        3

解决方案 »

  1.   

    join起来
    count(*) group by EDUCATION,部门ID
    再行转列
      

  2.   

    以解决 SELECT member_org.org_name,
    EXTEND.EDUCATION,
     COUNT(EXTEND.member_id) AS COUNT_EDUCATION
    FROM OIMEMBERINFO MEMBERINFO
    /*当前员工的学历*/
    INNER JOIN  OI_MEMBERINFO_EXTEND EXTEND ON EXTEND.member_id = MEMBERINFO.member_id 
    /*根据当前员工查找当前员工所在的部门*/
    INNER JOIN 
    (SELECT MEMBERORGINFO.member_id, ORGRELATIONINFO.org_id, ORGRELATIONINFO.org_name 
     FROM OI_MEMBERORGINFO MEMBERORGINFO 
       INNER JOIN OIORGRELATIONINFO ORGRELATIONINFO 
     ON MEMBERORGINFO.org_id = ORGRELATIONINFO.org_id) AS member_org
    ON member_org.member_id = MEMBERINFO.member_id
    GROUP BY    EXTEND.EDUCATION, member_org.org_id, member_org.org_name