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

谢谢你的回复!
我们不是要结果,需要的是思路和方法。如果用编程的方式 count for 一个数一个数统计也很快。

但用COUNT语句在记录数很多(几千条以上)的情况下,效率会逐渐降低。
2013-01-22 22:21
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
回复 21楼 taifu945
谢谢大家的回复!
我的本意是在用  group by 字段1分组统计时将各组数据统计出来的同时将总体数也统计出来,看来一条sele语句有困难。
2013-01-23 08:41
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用sdta在2013-1-21 19:55:50的发言:

应该这样统计吧
INSERT INTO bm_ry ((FIELD(1))) VALUES (PADC("小计",FSIZE(FIELD(1)),"-")) &&第一个字段必须为字符型,否则会出错
SELECT bm_ry
FOR I=1 TO FCOUNT()
    MFIELD=FIELD(I)
    IF TYPE(MFIELD)="N"
       *--- 数值型字段求和,并将结果添加到最后一条记录
       SUM &MFIELD TO HJ
       REPLACE RECORD RECCOUNT() (FIELD(I)) WITH HJ
       *--- 清空数值型字段内容为"0"的记录
       BLANK FIELD &MFIELD FOR &MFIELD=0
    ENDIF
ENDFOR楼主可以试试
顺便请教sdta版主,你的截图是用什么截的,怎么弄,怪好,可以复制里面的语句,如果用jpg图将什么都不能动了?
2013-01-23 08:51
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用zengjun81357在2013-1-23 08:51:09的发言:

顺便请教sdta版主,你的截图是用什么截的,怎么弄,怪好,可以复制里面的语句,如果用jpg图将什么都不能动了?
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-01-23 08:57
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用zengjun81357在2013-1-23 08:41:53的发言:

谢谢大家的回复!
我的本意是在用  group by 字段1分组统计时将各组数据统计出来的同时将总体数也统计出来,看来一条sele语句有困难。
用12楼给的思路试试 可能行
2013-01-23 09:00
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用tlliqi在2013-1-23 09:00:05的发言:

用12楼给的思路试试 可能行
谢谢提示。12楼的思路可取,但他代码没有贴全,关键是group by 分组根据没有,不明白他怎么分组,用部门分组是不行的,我用公司分组统计全体,然后象他说的 UNION ALL连接

SELECT deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by deptname UNION ALL SELECT '合计',COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司

做个例子,精简一些项目,运行通过
注意一点,原表中不能有空记录。

2013-01-23 12:43
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用zengjun81357在2013-1-23 12:43:04的发言:

谢谢提示。12楼的思路可取,但他代码没有贴全,关键是group by 分组根据没有,不明白他怎么分组,用部门分组是不行的,我用公司分组统计全体,然后象他说的 UNION ALL连接

SELECT deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by deptname  UNION ALL SELECT '合计',COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司

做个例子,精简一些项目,运行通过
注意一点,原表中不能有空记录。
原表中不能有空记录 加上isnull?()函数
2013-01-23 14:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
没你部分数据
有的话 可帮你一块试试哦
2013-01-23 14:01
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用zengjun81357在2013-1-23 12:43:04的发言:

谢谢提示。12楼的思路可取,但他代码没有贴全,关键是group by 分组根据没有,不明白他怎么分组,用部门分组是不行的,我用公司分组统计全体,然后象他说的 UNION ALL连接

SELECT deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by deptname  UNION ALL SELECT '合计',COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司

做个例子,精简一些项目,运行通过
注意一点,原表中不能有空记录。

合计部分是不用GROUP BY分组的,因为这部分的输出字段除了聚集函数就是一个名为“合计”的常量字段。这个我测试过,输出字段中若除了聚集函数外,其它全部是常量的话就不需要分组,你可以单独把“合计”部分的那条SELECT语句拿出来试试。
2013-01-23 14:36
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用taifu945在2013-1-23 14:36:07的发言:


合计部分是不用GROUP BY分组的,因为这部分的输出字段除了聚集函数就是一个名为“合计”的常量字段。这个我测试过,输出字段中若除了聚集函数外,其它全部是常量的话就不需要分组,你可以单独把“合计”部分的那条SELECT语句拿出来试试。
用每条记录公有的字段分组,比如每个部门的单位相同,每个班的年级相同,每年年级的学校相同,每年学校的行政管理部门相同,总有相同的。即使没有也可以在表中建一共用字段,填上相同内容。
2013-01-23 16:47
快速回复:晕倒:统计了各部门人员类别,不会统计全公司人员类别
数据加载中...
 
   



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

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