| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 649 人关注过本帖, 1 人收藏
标题:怎样快速将每月工资表转变为员工工资台帐
只看楼主 加入收藏
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
结帖率:87.5%
收藏(1)
已结贴  问题点数:20 回复次数:9 
怎样快速将每月工资表转变为员工工资台帐
怎样快速将每月工资表转变为员工工资台帐

gzb.dbf表中存有所有员工每个月的工资:
姓名 应发工资 月份
张三   3500    1
李四   3600    1
王五   3700    1
张三   3800    2
李四   3800    2
王五   3800    2
张三   3900    3
李四   4000    3
王五   4100    3
转化为员工的工资台帐(各月)
gztz.dbf表
姓名 1月应发工资 2月应发工资 3月应发工资  合计 月平均
张三   3500       3800        3900
李四   3600       3800        4000
王五   3700       3800        4100

更灵活的就是统计从1月到n月的情况

我在用友NC中自定义查询,用交叉的方式可以实现。VFP使用sele命令可否实现?

补充一下:月平均要按有工资的月份进行平均,比如从3月份新入的员工就不能把前两个月计进去

[ 本帖最后由 zengjun81357 于 2013-1-16 21:10 编辑 ]
搜索更多相关主题的帖子: 工资 用友NC 
2013-01-16 20:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:20 
上传工资表
工资表结构截图


[ 本帖最后由 sdta 于 2013-1-16 21:09 编辑 ]

坚守VFP最后的阵地
2013-01-16 21:07
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:0 
*-- VFP9
select 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)) 合计,;
AVG(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))) 月平均 INTO CURSOR GZHZ READWRITE 

如果统计N个月(必须是当年的)
上面的代码可以继续加
程序代码:
select 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=4,应发工资,0)) 四月,SUM(IIF(月份=5,应发工资,0)) 五月,SUM(IIF(月份=6,应发工资,0)) 六月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))+SUM(IIF(月份=4,应发工资,0))+;
SUM(IIF(月份=5,应发工资,0))+SUM(IIF(月份=6,应发工资,0)) 合计,;
AVG(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))++SUM(IIF(月份=4,应发工资,0))+;
SUM(IIF(月份=5,应发工资,0))+SUM(IIF(月份=6,应发工资,0))) 月平均 INTO CURSOR GZHZ READWRITE 



[ 本帖最后由 sdta 于 2013-1-16 21:20 编辑 ]

坚守VFP最后的阵地
2013-01-16 21:15
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用sdta在2013-1-16 21:15:15的发言:

*-- VFP9
select 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)) 合计,;
AVG(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))) 月平均 INTO CURSOR GZHZ READWRITE
如果统计N个月(必须是当年的)
上面的代码可以继续加select 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=4,应发工资,0)) 四月,SUM(IIF(月份=5,应发工资,0)) 五月,SUM(IIF(月份=6,应发工资,0)) 六月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))+SUM(IIF(月份=4,应发工资,0))+;
SUM(IIF(月份=5,应发工资,0))+SUM(IIF(月份=6,应发工资,0)) 合计,;
AVG(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0))++SUM(IIF(月份=4,应发工资,0))+;
SUM(IIF(月份=5,应发工资,0))+SUM(IIF(月份=6,应发工资,0))) 月平均 INTO CURSOR GZHZ READWRITE
谢谢版主回复,请注意我补充的条件:计算平均工资时没有工资的月份不参与平均,重要的是输入几月就统计1到几月的平均工资
不好意思我粘不上图,必须用附件吗?
2013-01-16 21:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:0 
你的示例数据中能看出某人某月没发工资吗

坚守VFP最后的阵地
2013-01-16 21:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:0 
类似的问题示例,论坛里有,自己找找吧

坚守VFP最后的阵地
2013-01-16 21:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:0 
月平均工资=工资合计/发工资的月数
写个自定义函数,用于求出发工资的月数就行了
最好上传数据表
如果不找出某位员工,某月没有发过工资,就不能按楼主的要求进行台帐统计

[ 本帖最后由 sdta 于 2013-1-16 21:53 编辑 ]
收到的鲜花
  • zengjun813572013-01-16 22:19 送鲜花  3朵   附言:回复很好很及时

坚守VFP最后的阵地
2013-01-16 21:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26997
注 册:2012-2-5
收藏
得分:0 
程序代码:
SELECT 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)) 合计,COUNT(*) 月数;
(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)))/COUNT(*) 月平均 GROUP BY 姓名INTO CURSOR GZHZ READWRITE 

这样应该行了吧
如果单位员工姓名有相同的,这段代码,可就出洋相了。
按员工编号进行台帐统计是最标准的。

[ 本帖最后由 sdta 于 2013-1-16 21:58 编辑 ]

坚守VFP最后的阵地
2013-01-16 21:56
zengjun81357
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-27
收藏
得分:0 
以下是引用sdta在2013-1-16 21:56:19的发言:

SELECT 姓名,SUM(IIF(月份=1,应发工资,0)) 一月,SUM(IIF(月份=2,应发工资,0)) 二月,SUM(IIF(月份=3,应发工资,0)) 三月,;
SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)) 合计,COUNT(*) 月数;
(SUM(IIF(月份=1,应发工资,0))+SUM(IIF(月份=2,应发工资,0))+SUM(IIF(月份=3,应发工资,0)))/COUNT(*) 月平均 GROUP BY 姓名INTO CURSOR GZHZ READWRITE  
 
这样应该行了吧
如果单位员工姓名有相同的,这段代码,可就出洋相了。
按员工编号进行台帐统计是最标准的。
谢谢回复,我简化试试,通过。
谢谢提醒。我例少只是为了简化。人员我肯定有代码,我是NC中导出的数据
2013-01-16 22:06
谈建红
Rank: 2
等 级:论坛游民
帖 子:61
专家分:17
注 册:2012-11-9
收藏
得分:0 
还可以在最后一行加一个合计
2013-01-17 12:14
快速回复:怎样快速将每月工资表转变为员工工资台帐
数据加载中...
 
   



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

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