Office中国论坛/Access中国论坛
标题:
[求助]不用自定义函数,如何计算员工每月的请假天数(已解决)
[打印本页]
作者:
默然
时间:
2003-2-25 21:12
有些感动,有些疑惑和不解,但不想弄明白。
作者:
Roadbeg
时间:
2003-2-26 19:01
犹太人的确是一个很奇怪的民族,一个比大和民族更可怕的民族.
作者:
zyp
时间:
2005-10-31 22:24
标题:
[求助]不用自定义函数,如何计算员工每月的请假天数(已解决)
在ADP中,有如下的资料表(员工请假记录):
Id
员工
起始日期
结束日期
1
张三
2005/10/1
2005/10/3
2
张三
2005/10/12
2005/10/12
3
张三
2005/10/24
2005/10/28
4
李四
2005/9/21
2005/10/15
5
李四
2005/10/25
2005/10/26
6
李四
2005/10/30
2005/11/15
7
王二
2005/9/15
2005/11/14
现在需计算员工在10月份的请假记录,应该为如下结果:<FONT face="Times New Roman">
<TABLE cellSpacing=0 cellPadding=0 border=1>
员工
请假天数
张三
10
<TR>
李四
<TD vAlign=top width=96>
<FONT color=#
作者:
徐阿鹏
时间:
2005-11-3 19:57
直接计算两个日期间的间隔日期不就可以了吗?
作者:
徐阿鹏
时间:
2005-11-3 19:58
datediff()
作者:
徐阿鹏
时间:
2005-11-3 20:10
在表中直接加个计算列,天数,在公式中写:(datediff(day,[开始日期],[截止日期]) + 1)就可以了
作者:
zyp
时间:
2005-11-4 00:51
以下是引用
徐阿鹏
在2005-11-3 12:10:00的发言:
在表中直接加个计算列,天数,在公式中写:(datediff(day,[开始日期],[截止日期]) + 1)
就可以了
谢谢阿鹏
问题可能比你想像的要复杂一点:
我要得到的结果是在本月内的请假天数,而不是请假的天数
也就说,请假日期不是本月的不予以计算,比如:10/25/2005-11/5/2005,在计10月份请假天数时,只能计7天(10/25/2005-10/31/2005),计11月请假天数时,只能计5天(11/1/2005-11/5/2005),不能直接用终止日期-起始日期的方法来获取结果的
作者:
zyp
时间:
2005-11-6 00:55
问题已解决,用存储过程,代码如下:
Alter Procedure "JiaTsM"
(@FirstDay datetime,@LastDay DateTime)
As
declare @Y int,@M int
set @Y=year(@FirstDay)
set @M=month(@FirstDay)
SELECT 员工,
Convert(int,Case When 终止日期>@LastDay Then @LastDay Else 终止日期
End-Case When 起始日期<@FirstDay Then @FirstDay Else 起始日期 End)
As 天数
From 请假表
WHERE
((year(起始日期)=@Y and month(起始日期)=@M) or
(year(终止日期)=@Y and month(终止日期)=@M) or
(起始日期<@FirstDay and 终止日期>@LastDay))
return
[此贴子已经被作者于2005-11-5 17:19:23编辑过]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3