关于SQL的统计问题(100分)

  • 主题发起人 主题发起人 三井瘦
  • 开始时间 开始时间

三井瘦

Unregistered / Unconfirmed
GUEST, unregistred user!
一个数据库,其中有职工姓名(xm),和所在单位(dw)
另一个数据库中,有单位所属的政府,以用单位,单位和政府是多对一的关系,
现在我要统计 每个政府下有多少个人(所管的单位的总人数) 问怎么写??
 
单位表有个 政府Id 之类的字段对应到政府的id吧
select count(xm) from 职工
left join 单位 on 职工.单位Id=单位.Id
left join 政府 on 单位.政府Id=政府.Id
group by 政府.Id

-----
http://www.8421.org
 
CREATE TABLE employee(xm CHAR(20),dw CHAR(20));
CREATE TABLE depart(zf CHAR(3),dw CHAR(20));
INSERT INTO employee VALUES('aaaaa','11111');
INSERT INTO employee VALUES('bbbbb','11111');
INSERT INTO employee VALUES('ccccc','11111');
INSERT INTO employee VALUES('ddddd','22222');
INSERT INTO employee VALUES('eeeee','22222');
INSERT INTO employee VALUES('fffff','33333');
INSERT INTO employee VALUES('ggggg','44444');
INSERT INTO employee VALUES('hhhhh','55555');
INSERT INTO employee VALUES('iiiii','55555');
INSERT INTO employee VALUES('jjjjj','55555');
INSERT INTO depart VALUES('123','11111');
INSERT INTO depart VALUES('123','22222');
INSERT INTO depart VALUES('456','33333');
INSERT INTO depart VALUES('456','44444');
INSERT INTO depart VALUES('123','55555');

SELECT distinct(d.zf),count(e.xm) FROM depart d,employee e WHERE d.dw=e.dw
GROUP BY d.zf

ZF COUNT(E.XM)
----------------------
123 8
456 2

不知是否符合你的要求。
 
楼上的兄弟完全合理
当然罗还可以这样写
select zf,count(xm) from depart d join employee e on d.dw=e.dw group by zf
 
后退
顶部