求一SQL

zyzx1986 2009-06-26 10:34:11
users 表

name gender salesid
-------------------- ------ -----------
张三 女 1
李四 男 2
王五 女 3
赵六 男 1
王八 男 2


sales表

id name partid
----------- -------------------- --------------------
1 售A 销售部
2 售B 销售部
3 售C 市场部

统计各个部门的男女人数 显示如:
part 男 女
-------------------- ------ -----
市场部 0 1
销售部 3 1


这个SQL怎么写好呢。。?




...全文
38 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiantom 2009-06-27
  • 打赏
  • 举报
回复
create table users (name varchar2(10),gender varchar2(10),salesid int);
create table sales(id int,name varchar2(10),partid varchar2(10));
insert into users values('张三','女',1);
insert into users values('李四','男',2);
insert into users values('王五','女',3);
insert into users values('赵六','男',1);
insert into users values('王八','男',2);
insert into sales values(1,'售A','销售部');
insert into sales values(2,'售B','销售部');
insert into sales values(3,'售C','市场部');
commit;

select partid,
sum(decode(gender, '男', 1, 0)) 男,
sum(decode(gender, '女', 1, 0)) 女
from (select u.gender, s.name, s.partid
from users u, sales s
where u.salesid = s.id)
group by partid;
inthirties 2009-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bsh_ly 的回复:]
SQL code


select s.partid, sum(decode(gender,男,1,0)) as 男, sum(decode(gender,女,1,0)) as 女
from users u, sales s
where u.salesid = s.id
group by s.partid


[/Quote]

类似这样的功能都可以试试decode方法
bsh_ly 2009-06-26
  • 打赏
  • 举报
回复
oracle 函数
zyzx1986 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bsh_ly 的回复:]
SQL code

select s.partid, sum(decode(gender,男,1,0)) as 男, sum(decode(gender,女,1,0)) as 女
from users u, sales s
where u.salesid = s.id
group by s.partid
[/Quote]

decode 是函数嘛?
bsh_ly 2009-06-26
  • 打赏
  • 举报
回复


select s.partid, sum(decode(gender,男,1,0)) as 男, sum(decode(gender,女,1,0)) as 女
from users u, sales s
where u.salesid = s.id
group by s.partid

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧