Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何设计阶梯式扣款

王萌萌  发表于:2014-12-27 15:32:17  
复制

我想设计一个阶梯式的扣款方法,我有一个全勤奖和一个出勤天数字段,如果出勤天数按照26天计算,那我的全勤奖就是260元,出勤天数(手动输入)如果是少一天。就自动在全勤奖中扣130.少二天就是扣100=60,少三天全勤奖就是0.

 

Top
易勋 发表于:2014-12-27 15:51:34

用分支语句

http://www.accessoft.com/article-show.asp?id=8008

 天数>=出勤天数

全勤奖=260

天数=出勤天数-1

=130

天数=出勤天数-2

=60

天数<=出勤天数-3

=0



朱先生 发表于:2014-12-27 16:26:48
SELECT 表1.出勤天数, IIf([出勤天数]>=26,260,IIf([出勤天数]=25,130,IIf([出勤天数]=24,60,0))) AS 奖金
FROM 表1;



王岚 发表于:2014-12-27 17:55:10

我把这句写在查询里了。但是出现错误。不知道这样写是否可以。



煮江品茶 发表于:2014-12-27 19:28:22
全勤奖:iif(本月出勤天数<=24,0,iif(本月出勤天数=25,130,260))

朱先生 发表于:2014-12-27 21:00:22

点击下载此附件

奖金不是固定的,扣款标准也是要变化的

可在  “奖金发放标准表”  进行修改



王岚 发表于:2014-12-29 16:23:33
我按照你的公式改了一下,在“全勤奖”控件中写入=IIf([本月出勤天数]=26,260,IIf([本月出勤天数]=25,130,IIf([本月出勤天数]<=24,0)))可以计算,但是在查询里确出错。不知道为什么。还请煮江品茶 指教。

朱先生 发表于:2014-12-29 16:47:38

IIf([本月出勤天数]<=24.0   只有是没有否  这一段要改为IIf([本月出勤天数]=24.60,0   试试

出勤>26天呢?

IIf([本月出勤天数]=26,260    是不是要改为    IIf([本月出勤天数]>=26,260   

全勤奖政策永远是260吗?今后不会改变吗?

有没有看一下我在5楼的附件? 能适应政策的改变



煮江品茶 发表于:2014-12-29 16:54:30

呵呵,你为什么不用我写的呢?

iif套用时,逻辑运算是从最外层向最里层逐步比较的,要利用这个规律来计算。同时考虑其逻辑的严密性。

按你现在的写法,27天以及以后的(加班)都没全勤奖。

如果考虑会出现小数天数(如24.5天),更严密的写法,应该是:

iif(本月出勤天数<=24,0,iif(本月出勤天数<=25,130,260))

iif(本月出勤天数>=26,260,iif(本月出勤天数>=25,130,0))

 

如果只考虑连续的三个整数的话,也可以用Choose函数进行计算:

Choose(26-本月出勤天数,260,130,0)


 

 



王岚 发表于:2014-12-30 12:04:26
煮江品茶 我按照你用CHOOSE写的可以了,但是现在出现当天数为26的时候。全勤奖是空白,另外我们的天数只有整数三种,26=260;25=130;24=60;23=0.

朱先生 发表于:2014-12-30 18:19:23

每月的出勤天数都是26?

如果应该出勤25天,实际出勤天数25天,是发260还是发130?其余类推

不会每月更改计算公式吧!




王岚 发表于:2014-12-31 08:48:09

朱先生:是每月出勤都是按照26天基础不变的,26天就是260.25天就是130.这个规律目前不会变。请帮忙修改一下。谢谢。



煮江品茶 发表于:2014-12-31 09:17:47

nz(Choose(27-本月出勤天数,260,130,60),0)

其含义是:第一个参数为1(27-26=1)时,Choose函数返回第二个参数260,第一个参数为2(27-25=2)时,Choose函数返回第三个参数130,第一个参数为3(27-24=3)时,Choose函数返回第四个参数60,当第一个参数为1到3之外的整数时,Choose函数返回null。

 



总记录:12篇  页次:1/1 9 1 :