| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 922 人关注过本帖
标题:按入职时间求工作平均值
只看楼主 加入收藏
r411
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2011-5-6
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
按入职时间求工作平均值
求助,相关字段如下:
入职时间 员工编号  员工姓名 一月工资 二月工资 三月工资 四月工资 五月工资 六月工资 七月工资 八月工资 九月工资 十月工资 十一工资 十二工资  月均工资
20090823 0010001   张三     1230.00  2310.00  2215.00  3310.00  1563.00  2215.00  1215.00  2515.00  2233.00  2115.00  2098.00   3215.00  
20100204 0020302   李四     (空白) 0.00     0.00     889.00   779.00   989.00   1109.00  1289.00  1189.00  1389.00  1329.00   1889.00        
20100304 0400203   王五     (空白)(空白)  1109.00  1289.00  1189.00  989.00   1109.00 (空白) (空白)  2215.00  1215.00   1389.00  
20100909 0003304   赵大麻   (空白)(空白) (空白) (空白) (空白) (空白) (空白) (空白)  0.00     989.00   1230.00   1889.00        
。。。。。。。

部分员工整年都在职,这个只需计算平均整年12个月的平均值,这个小弟懂。
部分员工新入职,但是有两个月为其它部门实习,核发工作不在本部门计算。需计算在职期间月月均值,含未核发部分。
部分员工新入职,但是中间存在空岗借调其他部门。需计算在职期间月均值,不含空白月份。
部分员工新入职,但入职时间较短。需计算入职时间的工作月均值

为计算人工成本,想实现的是计算以上四个情况员工的月工资平均,因为员工较多,以上四种情况参差不齐,十几万条记录,需计算后列在月均工资内。
请各位老师赐教,能否详细说明语句和步骤,因为刚从事接触VFP9.0,万分感谢。
搜索更多相关主题的帖子: 工作 八月 平均值 
2011-12-05 18:42
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
给你个例子参考
假如:工资表名为gz,月均工资为gzj,一月工资为gz1,二月工资为gz2   .........十二月工资为gz12

UPDATE gz SET gzj=(IIF(gz1>0,gz1,0)+IIF(gz2>0,gz2,0)+IIF(gz3>0,gz3,0)+IIF(gz4>0,gz4,0)+IIF(gz5>0,gz5,0)+IIF(gz6>0,gz6,0)+IIF(gz7>0,gz7,0)+IIF(gz8>0,gz8,0)+IIF(gz9>0,gz9,0)+IIF(gz10>0,gz10,0)+IIF(gz11>0,gz11,0)+IIF(gz12>0,gz12,0))/(IIF(gz1>0,1,0)+IIF(gz2>0,1,0)+IIF(gz3>0,1,0)+IIF(gz4>0,1,0)+IIF(gz5>0,1,0)+IIF(gz6>0,1,0)+IIF(gz7>0,1,0)+IIF(gz8>0,1,0)+IIF(gz9>0,1,0)+IIF(gz10>0,1,0)+IIF(gz11>0,1,0)+IIF(gz12>0,1,0))
2011-12-05 19:49
cymjx
Rank: 2
等 级:论坛游民
帖 子:74
专家分:29
注 册:2010-11-9
收藏
得分:0 
看起来有的复杂。
2011-12-06 09:53
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:5 
UPDATE gz SET gzj=(gz1+gz2+gz3+gz4+gz5+gz6+gz7+gz8+gz9+gz10+gz11+gz12)/(IIF(gz1>0,1,0)+IIF(gz2>0,1,0)+IIF(gz3>0,1,0)+IIF(gz4>0,1,0)+IIF(gz5>0,1,0)+IIF(gz6>0,1,0)+IIF(gz7>0,1,0)+IIF(gz8>0,1,0)+IIF(gz9>0,1,0)+IIF(gz10>0,1,0)+IIF(gz11>0,1,0)+IIF(gz12>0,1,0)) WHERE gz1+gz2+gz3+gz4+gz5+gz6+gz7+gz8+gz9+gz10+gz11+gz12>0
2011-12-06 11:28
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:1 
不知楼主表内的月工资字段,是数值型还是字符型的 ?(当然,通常是数值型的).如果是数值型的,楼上各位老师的答案应该都是正解。即:0.00 与空白无差别。但如果是字符型的,按楼主的意思,‘未核发部分’是否是空白还是 0.00 ?因为两者有差别的。不知理解的是否正确。

[ 本帖最后由 qingfameng 于 2011-12-6 14:15 编辑 ]
2011-12-06 14:06
r411
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2011-5-6
收藏
得分:0 
忘记说明,是字符型的,并且空白和0.00是有区别的
2011-12-06 23:22
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用r411在2011-12-6 23:22:43的发言:

忘记说明,是字符型的,并且空白和0.00是有区别的
也是一样的,因为空白列,只是显示不是0.00,其实该字段是数字型号的。
2011-12-07 08:20
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:2 
如果字段是数字型号的,那么空白列与0.00效果是一样的。
如果楼主确认字段是字符型的,那么不知楼主说的‘空白和0.00是有区别的’是什么意思?这区别是否对统计有影响?如果确实字段是字符型的,那么在程序语句中必须将字符型转换成数字型进行计算,然后转换成字符型保存在月均工资字段。
2011-12-07 08:48
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
以下是引用panpende在2011-12-7 08:48:34的发言:

如果字段是数字型号的,那么空白列与0.00效果是一样的。
如果楼主确认字段是字符型的,那么不知楼主说的‘空白和0.00是有区别的’是什么意思?这区别是否对统计有影响?如果确实字段是字符型的,那么在程序语句中必须将字符型转换成数字型进行计算,然后转换成字符型保存在月均工资字段。
12个月每月工资都是数字型的,不会出现其中某个是字符型
2011-12-07 17:47
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:5 
看来低工资制也有好处。假如楼主 0.00 代表‘未核发部分’,空白代表空岗,而汇总也要包含‘未核发部分’,即:0.00 的月份.也要统计,那么。可以这样考虑解决:
1、先判定字符型月份字段中,asc值是否大于0,比如:李四第1个月是空白,就是 y1=alltrim(一月工资),asc(y1)=0
2、将asc值为0的带上一个很大的数值。比如:‘9999999’,估计没人有这个高工资。
3、将表转换成数值型表。
4、再按楼上各位的解法思路,并在查询中设定条件,去除‘999999’即可。(是否正确?仅作参考)
2011-12-08 03:32
快速回复:按入职时间求工作平均值
数据加载中...
 
   



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

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