Users表
name gender salesid
张三 女 1
李四 女 2
王五 男 3
六小龄 女 1sales表
id name partid
1 售a 销售部
2 售b 销售部
3 售c 市场部
请用SQL查找各个部门的男女人数分别是多少,如以下信息:
Part 男 女
销售部 ?人数 ?人数
市场部 ?人数 ?人数

解决方案 »

  1.   

    select b.partid,a.gender,count(1)
    from users a,sales b
    where a.salesid=b.id
    group by b.partid,a.gender
      

  2.   

    SELECT S.PARTID,SUM(DECODE(U.GENDER,'男',1,0)) “男”,SUM(DECODE(U.GENDER,'女',1,0)) “女”
    FROM USERS U,SALES S
    WHERE
    U.SALESID=S.ID
    GROUP BY S.PARTID;
      

  3.   

    不好意思,看的马虎了。
    select b.partid,
           sum(a.gender, '男', 1, 0) 男,
           sum(a.gender, '女', 1, 0) 女,
      from users a, sales b
     where a.salesid = b.id
     group by b.partid
      

  4.   

    呵呵 哥们又马虎了
    少个decode
      

  5.   

    select partid,max(decode(gender,'男',num,0)) 男,max(decode(gender,'女',num,0)) 女
    from (select partid,gender,count(1) num from users a,sales b where a.salesid = b.id group by partid,gender)
    group by partid;
      

  6.   

    SELECT S.PARTID,SUM(DECODE(U.GENDER,'男',1,0)) “男”,SUM(DECODE(U.GENDER,'女',1,0)) “女”
    FROM USERS U,SALES S
    WHERE
    U.SALESID=S.ID
    GROUP BY S.PARTID;