| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1369 人关注过本帖
标题:晕倒:统计了各部门人员类别,不会统计全公司人员类别
只看楼主 加入收藏
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:2 
哈哈,有人不太喜欢SELECT。
2013-01-21 22:52
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用zengjun81357在2013-1-21 21:00:43的发言:

谢谢楼上的回复,只是用这么一段程序也不太简洁,还有点不好懂。
方法一:按照2楼的说法,对结果表bm_ry 进行汇总操作total to 临时表1,然后再  appe from 临时表1,比较明了。
方法二:原表增加一个公共字段:公司,然后两条sele 命令

SELECT 公司,deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司,deptname  INTO TABLE bm_ry
Insert  INTO  bm_ry   SELECT 公司,SUM(IIF(psncl='随意',1,0)) as deptname,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc  group by 公司
最后需要将  汇总行 部门名称 '0' 修改为 '合计'

其实不用改来改去那么复杂,借你的代码修改一下:不需要公司这个字段,因为你输出结果中没有公司,可以用UNION子句连接分部门统计和合计两个部分。分部门统计部分其它代码与你已有的相同(除了不要“公司”),然后只要按部门分组统计即可。然后下半段是:

..... ;(分部门统计部分)
UNION ALL ;
SELECT "合计", COUNT(*) AS 人数, SUM(IIF(psncl='行政管理人员',1,0)) AS 行政管理人员, ... ;
   FROM 表文件名

我没有测试过,你可以试试看。
收到的鲜花
  • tlliqi2013-01-22 19:39 送鲜花  20朵   附言:很不错的观点,赞
2013-01-21 23:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:0 
不是喜欢不喜欢SELECT-SQL语句的问题
单机程序用不着那么复杂的SELECT语句


坚守VFP最后的阵地
2013-01-21 23:17
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
SQL语句运行速度快呀,而且楼主也想借机学习一下SELECT-SQL(我的猜测)。
2013-01-22 19:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:0 
没有基础是不行的

坚守VFP最后的阵地
2013-01-22 19:28
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用taifu945在2013-1-21 23:09:36的发言:


其实不用改来改去那么复杂,借你的代码修改一下:不需要公司这个字段,因为你输出结果中没有公司,可以用UNION子句连接分部门统计和合计两个部分。分部门统计部分其它代码与你已有的相同(除了不要“公司”),然后只要按部门分组统计即可。然后下半段是:

..... ;(分部门统计部分)
UNION ALL ;
SELECT "合计", COUNT(*) AS 人数, SUM(IIF(psncl='行政管理人员',1,0)) AS 行政管理人员, ... ;
   FROM 表文件名

我没有测试过,你可以试试看。
很不错的观点,赞
2013-01-22 19:38
谈建红
Rank: 2
等 级:论坛游民
帖 子:61
专家分:17
注 册:2012-11-9
收藏
得分:2 
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 谈建红 于 2013-1-22 20:37 编辑 ]
2013-01-22 20:34
谈建红
Rank: 2
等 级:论坛游民
帖 子:61
专家分:17
注 册:2012-11-9
收藏
得分:0 
如有需要请留言
2013-01-22 20:36
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 17楼 谈建红
不错
2013-01-22 20:39
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用谈建红在2013-1-22 20:34:15的发言:
谢谢你的回复!
我们不是要结果,需要的是思路和方法。如果用编程的方式 count for 一个数一个数统计也很快。
2013-01-22 21:33
快速回复:晕倒:统计了各部门人员类别,不会统计全公司人员类别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018647 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved