SQL问题,视图,两表联合查询,count。懵了,求指点。

selecttb.*,当期管护区信息表.管护面积,当期管护区信息表.管护区号,当期管护区信息表.管护蓄积from(SELECT林业局,林场,单位,管护站编号,林班数,占地... select tb.* ,当期管护区信息表.管护面积,当期管护区信息表.管护区号,当期管护区信息表.管护蓄积 from (
SELECT 林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他

FROM (
SELECT 林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他

FROM View_林场管护站点 ) AS derivedtbl_1
UNION (SELECT 林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他

FROM View_林业局管护站点)
UNION (SELECT 林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他

FROM View_林场管护站点 )
UNION (SELECT 林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他

FROM View_管护站点)

)
tb

left join 当期管护区信息表 on tb.管护站编号=当期管护区信息表.管护站编号

ORDER BY tb.林业局 ,tb.林场, tb.管护站编号
这是我写的查询,已经实现,现在在关联表当期管护区信息表中有列是管护人编号,我想利用管护人编号统计每个林业局,林场,管护站中管护人的个数,怎么修改能实现?
展开
 我来答
Andy_Sun321
2013-08-20 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:750万
展开全部

用count做统计:

select tb.林业局 ,tb.林场, tb.管护站编号, count(当期管护区信息表.管护人编号) as [管护人的个数]
from (
SELECT     林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他
FROM  (
 SELECT    林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他  
FROM   View_林场管护站点 
 ) AS derivedtbl_1 
UNION
 (SELECT    林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他  
FROM   View_林业局管护站点
)
UNION 
(SELECT    林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他 
 FROM   View_林场管护站点 
)  
UNION (SELECT    林业局,林场,单位, 管护站编号,林班数, 占地面积, 建筑面积, 资金, 通讯, 交通, 供电, 生活,其他  
FROM  View_管护站点)
 ) 
tb left join 当期管护区信息表 on tb.管护站编号=当期管护区信息表.管护站编号
group by tb.林业局 ,tb.林场, tb.管护站编号
ORDER BY tb.林业局 ,tb.林场, tb.管护站编号
追问

为啥加上单位就不好使啦?

追答
提示说得清楚: 你要将tb.单位加在select的选择列表中, 那么必须也在group by中加入tb.单位.
因为数据库中进行分组统计时, 能够出现在select选择列表中的字段要么是房子统计函数(count, sum, max, min等)中, 要么是分组字段(就是放在group by后的字段).
所以, 你只要把tb.单位也加入group by中即可.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式