当前位置: 代码迷 >> VFP >> 请问,怎么编程自动计算规定时段人平工资
  详细解决方案

请问,怎么编程自动计算规定时段人平工资

热度:6737   发布时间:2013-02-26 00:00:00.0
请教,如何编程自动计算规定时段人平工资?
每个月产生一张工资表如,e201008,e201101,e201110,e201111等等,
1.发放工资规定是:每个月发工资情况是这样的,如当月20日(含)前入职的,当月底发放工资,当月20日后入职的次月底一同发放工资。
2.计算过去十二个月人平工资或规定时段人平工资规则是:
如,截止于2011年11月,计算过去12个月人平工资时,
a) 2010年11月前入职的,就计算2010年12月至2011年11月工资之和除以12;
b) mimi是2011-03-06入职的,就计算2011年3月至11月的工资之和除以9;
c) tom在2011-02-21入职的,当月不发工资,计算是按2011年3月至11月工资之后除以9。

现在问题是:实际工作中,经常要根据动态的需要,实时计算过去十二个月的人平工资,如2010年8月至2011年7月,或2010年10月至2011年9月,2010年12月至2011年11月,2011年1月至12月;经常是计算跨年度的12个月的、或有时同年度的12个月、或者是某规定时段(如2010年8月至12月)的人平工资,等等。

现请教,如何根据人员的入职日期、根据截止于某月,编程自动计算过去十二个月人平工资或者是规定时段的人平工资?请各位老师赐教,谢谢。
 close all
  CLEAR
  SET SAFETY off
  SET CENTURY on
  SET date TO ansi
   
  CREATE TABLE zgb (cname c (8),joindate d )
  INSERT INTO zgb (cname,joindate)value("hans",{^2010-08-15})
  INSERT INTO zgb (cname,joindate)value("tom",{^2011-02-21})
  INSERT INTO zgb (cname,joindate)value("mimi",{^2011-03-06})
  INSERT INTO zgb (cname,joindate)value("cici",{^2010-10-12})
  brow
   
  CREATE table e201009 (cname c(8),salary n(9,2))
  insert into e201009 (cname,salary)value ("hans",1250)
  CREATE table e201010 (cname c(8),salary n(9,2))
  insert into e201010 (cname,salary)value ("hans",1150)
  insert into e201010 (cname,salary)value ("cici",910)
  CREATE table e201011 (cname c(8),salary n(9,2))
  insert into e201011 (cname,salary)value ("hans",1090)
  insert into e201011 (cname,salary)value ("cici",1080)
  CREATE table e201012 (cname c(8),salary n(9,2))
  insert into e201012 (cname,salary)value ("hans",1020)
  insert into e201012 (cname,salary)value ("cici",1050)
  CREATE table e201101 (cname c(8),salary n(9,2))
  insert into e201101 (cname,salary)value ("hans",1080)
  insert into e201101 (cname,salary)value ("cici",1040)
  CREATE table e201102 (cname c(8),salary n(9,2))
  insert into e201102 (cname,salary)value ("hans",1120)
  insert into e201102 (cname,salary)value ("cici",1090)
  CREATE table e201103 (cname c(8),salary n(9,2))
  insert into e201103 (cname,salary)value ("hans",1220)
  insert into e201103 (cname,salary)value ("tom",1450)
  insert into e201103 (cname,salary)value ("mimi",1050)
  insert into e201103 (cname,salary)value ("cici",1160)
  CREATE table e201104 (cname c(8),salary n(9,2))
  insert into e201104 (cname,salary)value ("hans",1120)
  insert into e201104 (cname,salary)value ("tom",1280)
  insert into e201104 (cname,salary)value ("mimi",1120)
  insert into e201104 (cname,salary)value ("cici",1190)
  CREATE table e201105 (cname c(8),salary n(9,2))
  insert into e201105 (cname,salary)value ("hans",1020)
  insert into e201105 (cname,salary)value ("tom",1210)
  insert into e201105 (cname,salary)value ("mimi",1150)
  insert into e201105 (cname,salary)value ("cici",1100)
  CREATE table e201106 (cname c(8),salary n(9,2))
  insert into e201106 (cname,salary)value ("hans",1150)
  insert into e201106 (cname,salary)value ("tom",1180)
  insert into e201106 (cname,salary)value ("mimi",1200)
  insert into e201106 (cname,salary)value ("cici",1300)
  CREATE table e201107 (cname c(8),salary n(9,2))
  insert into e201107 (cname,salary)value ("hans",1210)
  相关解决方案