标题:统计相关问题
只看楼主
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
第一问是不是要达到这种效果?

第二问暂时运行到这一步

我是来向高手学习的!
2012-11-05 17:40
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
图发反了哈。

我是来向高手学习的!
2012-11-05 17:41
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
得分:0 
后二个问题,按我的水平,要增加表辅助字段后,统计就简单了
2012-11-05 17:43
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
针对第一问题,我觉得应该以工号来分组。
我那样做是不科学的。
因为存在重名的情况。
而且我看他前几个姓名。有个叫比松奎的。还有个叫毕松奎的。应该属于同一个人,打错了字.
按工号统计是得到最准确的结论的

[ 本帖最后由 wjp456789 于 2012-11-5 18:23 编辑 ]

我是来向高手学习的!
2012-11-05 17:59
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
1、每个人培训课时的总数
SELECT * , STR(sum(VAL(ALLTRIM(课时)))) 培训课时总数 FROM 培训记录 GROUP BY 姓名

2012-11-05 18:49
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
第二个问题。用一条sele语句完成不了。
我用两条sele语句完成的。
程序代码:
SELECT 培训时间,COUNT(dist 培训课程) as 培训课程数 FROM 培训记录 GROUP BY 培训时间 INTO TABLE temp1
USE temp1
BROWSE
SELECT IIF(SUBSTR(培训时间,1,2)='10',SUBSTR(培训时间,1,2)+'',SUBSTR(培训时间,1,3)+space(1)) as 培训月份,SUM(培训课程数) as 月培训课程数 FROM temp1 GROUP BY 培训月份 INTO TABLE temp2
BROWSE

 

我是来向高手学习的!
2012-11-05 18:49
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
为什么上图会出现一个培训月份为空的数据
是因为你提供的一个培训记录没有填培训日期
 

我是来向高手学习的!
2012-11-05 18:51
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
以下是引用tlliqi在2012-11-5 18:49:07的发言:

1、每个人培训课时的总数SELECT * , STR(sum(VAL(ALLTRIM(课时)))) 培训课时总数 FROM 培训记录 GROUP BY 姓名
不能将sele *  与group by  同时用。。。。。要出错。

我是来向高手学习的!
2012-11-05 18:53
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
得分:0 
第三个问题
程序代码:
select temp2
BROWSE
ALTER table temp2 ADD 培训季度 c(10)
BROWSE
REPLACE 培训季度 WITH '第一季度' FOR 培训月份='1月' OR 培训月份='2月' OR 培训月份='3月'
REPLACE 培训季度 WITH '第二季度' FOR 培训月份='4月' OR 培训月份='5月' OR 培训月份='6月'
REPLACE 培训季度 WITH '第三季度' FOR 培训月份='7月' OR 培训月份='8月' OR 培训月份='9月'
REPLACE 培训季度 WITH '第四季度' FOR 培训月份='10月' OR 培训月份='11月' OR 培训月份='12月'
SELECT 培训季度,SUM(月培训课程) FROM temp2 GROUP BY 培训季度

增加辅助列“培训季度”

我是来向高手学习的!
2012-11-05 19:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
*--- VFP9代码
*--- 每个人培训课时的总数
SELECT 工号,姓名,SUM(INT(VAL(课时))) 课时 FROM 培训记录 GROUP BY 1,2

*--- 每个月总共有多少培训课时
SELECT CAST(GETWORDNUM(培训时间,1,[]) AS N(2)) 月份,SUM(INT(VAL(课时))) 课时 FROM 培训记录  GROUP BY 1 WHERE NOT EMPTY(课时)

*--- 每个季度总共有多少培训课时
SELECT CAST(CEILING(CAST(GETWORDNUM(培训时间,1,[]) AS N(2))/3) AS N(1)) 季度,SUM(INT(VAL(课时))) 课时 FROM 培训记录 GROUP BY 1 WHERE NOT EMPTY(课时)


[ 本帖最后由 sdta 于 2012-11-6 01:01 编辑 ]
收到的鲜花
  • tlliqi2012-11-06 08:50 送鲜花  10朵   附言:我很赞同

坚守VFP最后的阵地
2012-11-06 00:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385963-1-1.html




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

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