求SQL多表统计

2025-02-28 01:34:16
推荐回答(3个)
回答1:

select count(*) from 地区表,地区负责人表,人员表 where
地区表.地区ID=地区负责人表.地区ID and 地区负责人表.负责人ID=人员表.负责人ID and exists(select 地区ID from 地区表 where 地区ID=地区表.地区ID)

有个前提是...每个地区负责人表里的负责人ID都能在人员表的负责人ID里找到///....
地区负责人表.负责人ID=人员表.负责人ID 不然这个等式不成立

严谨的考虑 和组合sql也是有办法兼容这个前提的的 那样的sql就更繁琐了...

回答2:

select count(*) as 人员总和 from 地区表,人员表
where 地区表.负责人ID=负责人.负责人ID
and 负责人.负责人ID=人员表.负责人ID
and 地区表.名称='金牛区'

回答3:

select count(人员ID) 地区负责人表 where 负责人ID(所属上级ID) in (
select 负责人ID 地区负责人表 where 地区ID(所属区域ID) in
(select 地区ID from 地区表 where 父ID in (select 地区ID from 地区表 where 名称 = '成都' ))
)