计算每月员工住宿的天数

 

说明:本系统把宿舍管理融合为一体系统处理:宿舍安排,水电费计算,宿舍管理可根据实际情况调配人员,很直观。最主要的是水电运算:刚开始考察的结果----按每间宿舍每月计算水电,不管是本月离职的,还是刚搬进的,还是月间调到其它宿舍的,都得要考虑计算进去,人工计算的时候,他们一般以10天为一个运算单位,这就是实际情况。我经过思考:首先计算出每间宿舍只要在这里住过的员工,不管是刚搬进的,还是离职搬出的,住过的天数。这样,得到每间宿舍的一个基数:即每间宿舍所有员工住宿的天数,再用水电总费用除以基数得出每天的平均基数,每个人的住宿天数和平均基数相乘就可以得出每人的水电费。 

 

 2009、3 龚德权

 

主要数据库脚本代码:计算每月员工住宿的天数

declare
@Param1 varchar(20)
set @Param1='2009-03'

select 入住人,NAME,GENDER,部门,TITLE,离职,宿舍编号,宿舍床号,宿舍性质,搬入时间,搬出时间,a.备注,时间段
,本月天数
,(case when 本月天数<=时间段 then 本月天数
       when 本月天数>时间段 then 时间段

end) 住宿天数,@Param1 as 年月
from (SELECT  宿舍编号,宿舍床号,宿舍性质,入住人,搬入时间,搬出时间,备注,
datediff(dd,

(case when 搬入时间<=cast(@Param1+'-01' as datetime) then cast(@Param1+'-01' as datetime)
       when 搬入时间>cast(@Param1+'-01' as datetime) then 搬入时间

end),搬出时间) as 时间段,
datename(dd,dateadd(dd,-1,dateadd(mm,1,cast(@Param1+'-01' as datetime)))) as 本月天数
 
FROM [kaoqing].[dbo].[宿舍日志] where  年月=@Param1
union all
SELECT 宿舍编号,宿舍床号,宿舍性质,入住人,搬入时间,搬出时间,备注,
datediff(dd,搬入时间,dateadd(dd,-1,dateadd(mm,1,cast(@Param1+'-01' as datetime)))) as 时间段,
datename(dd,dateadd(dd,-1,dateadd(mm,1,cast(@Param1+'-01' as datetime)))) as 本月天数
  FROM [kaoqing].[dbo].[宿舍管理]where 入住人<>'' and 备注 not like '%中午休息%'
) a,renshi_bm where renshi_bm.BADGENUMBER=a.入住人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值