实现工资自定义公式的计算方法示例

转载 2006年07月17日 11:34:00

--测试数据  
  create   table   公式表(工资项目   sysname,项目代码   sysname,是否打印   bit,计算公式   varchar(1000))  
  insert   into   公式表  
  select   '基本工资','gz1',1,null  
  union   all   select   '考勤','gz2',1,null  
  union   all   select   '工龄','gz3',1,null  
  union   all   select   '奖金','gz4',1,null  
  union   all   select   '应发工资','gz5',1,'gz1+gz2+gz3+gz4'  
  union   all   select   '养老保险','gz6',0,null  
  union   all   select   '应纳税收入','gz7',1,'case   when   gz5-gz6>0   then   gz5-gz6   else   0   end'  
  union   all   select   '个人所得税','gz8',1,'case   when   gz7<500   then   gz7*.05   else   case   when   gz7>=500   and   gz7<2000   then   gz7*.1-25   else   gz7*.15-125   end   end'  
  union   all   select   '实发工资','gz9',1,'gz5-gz6-gz8'  
   
  create   table   工资表(职员   varchar(10),gz1   int,gz2   int,gz3   int,gz4   int  
  ,gz5   int,gz6   int,gz7   int,gz8   int,gz9   int)  
  insert   into   工资表(职员,gz1,gz2,gz3,gz4,gz6)  
  select   '张三',1000,1,1,100,100  
  union   all   select   '李四',1200,1,2,150,150  
  go  
   
  --工资计算的存储过程  
  create   proc   p_calc  
  as  
  declare   @s1   varchar(8000),@s2   varchar(8000),@s3   varchar(8000)   ,@i1   int,@i2   varchar(20)  
   
  select   @s1=''
  select @s2=''
  select @s3=''
 Select @i1=0  
  select   @i1=@i1+1,@i2='@'+cast(@i1   as   varchar)  
  ,@s1=@s1+','+@i2+'   varchar(8000)'  
  ,@s2=@s2+','+@i2+'=''update   工资表   set   ['+项目代码+']=('+计算公式+')'''  --這裡放到一行
  ,@s3=@s3+'  
  exec('+@i2+')'  
  from   公式表   where   计算公式   is   not   null  
  select   @s1=substring(@s1,2,8000),@s2=substring(@s2,2,8000)   --4改為2
  exec('declare   '+@s1+'  
  select   '+@s2+'  
  '+@s3)  
  print 'declare   '+@s1+'     select   '+@s2+'     '+@s3
  go  
   
  --调用存储过程,实现工资计算  
  exec   p_calc  
  go  
   
  --显示计算结果  
  select   *   from   工资表  
  go  
   
  --删除测试环境  
  drop   table   公式表,工资表  
  drop   proc   p_calc

 

具体见此贴:http://community.csdn.net/Expert/topic/4797/4797593.xml?temp=.2456629

自定义工资项和公式

1,自定义工资项 定义工资公式的功能是企业工资计算中常见的做法,这其实就像Excel系统中的公式一样的普通。但某位技术员在要自己开发的程序中增加公式系统,那就要开发一个像样的公式解释逻辑了,该工...
  • u014611033
  • u014611033
  • 2014年04月19日 12:58
  • 1145

5-10 计算工资 (15分)

某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工...
  • qq_26570353
  • qq_26570353
  • 2016年04月02日 10:58
  • 1547

ccf试题 工资计算

问题描述   小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: ...
  • wqy20140101
  • wqy20140101
  • 2017年01月31日 16:59
  • 861

新个人所得税EXCEL计算公式以及税后工资反算税前工资公式详解

全国人大常委会6月30日下午表决通过了关于修改个人所得税法的决定,将个税起征点提高到3500元。根据决定,个税起征点将从现行的2000元提高到3500元,修改后的个税法将于2011年9月1日起施行。现...
  • arbin_he
  • arbin_he
  • 2013年08月16日 18:49
  • 4021

C++实验3-个人所得税的计算

/* * 文件名称:C++实验3-个人所得税计算 * 作 者:高晨 * 完成日期: 2016 年 04 月 07 日 * 版 本 号:v1.0 * 对任务及求解方法...
  • gaochenfunny
  • gaochenfunny
  • 2016年04月07日 09:19
  • 429

新个人所得税EXCEL计算公式以及税后工资反算税前工资公式

1、2011年9月1日开始,个税计算公式 个税=ROUND(MAX((A6-3500)*{0.03,0.1,0.2,0.25,0.3,0.35,0.45}-{0,105,555,1005,2755,...
  • scientist29
  • scientist29
  • 2015年04月14日 08:20
  • 2067

SAP 人力资源工资配置项1---工资计算周期配置

对于工资计算,需要配置三方面内容:工资计算周期、工资类型、工资项。   以下是配置工资计算周期配置: 1、定义期间参数 期间参数表明了工资核算的频率。 主题 设置期间参数 菜单路径 SAP...
  • xiouluoyang
  • xiouluoyang
  • 2014年06月10日 16:21
  • 3511

行列式的定义及简单计算

1. 三阶行列式的计算
  • lanchunhui
  • lanchunhui
  • 2016年06月14日 20:26
  • 1033

河北退休金计算公式方法

---------------------------------------------- 93年前按实际工作时间计算社保工龄,93年开始按实际参加社保缴纳社保费计算工龄时间,累积工龄达到15年,...
  • sjpljr
  • sjpljr
  • 2017年04月14日 09:58
  • 1298

算法系列之二十:计算中国农历(二)

(接上篇)        所谓的“天文算法”,就是利用经典力学定律推导行星运转轨道,对任意时刻的行星位置进行精确计算,从而获得某种天文现象发生时的时间,比如日月合朔这一天文现象就是太阳和月亮的地心黄经...
  • orbit
  • orbit
  • 2013年07月15日 23:36
  • 21457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现工资自定义公式的计算方法示例
举报原因:
原因补充:

(最多只允许输入30个字)