统计加班时间的存储过程。

CREATE PROCEDURE dt_jb_tg
(
@fristtime int,
@lasttime int,
@depid int,
@IntDateTypeID int
)
AS
Declare @S1 Nvarchar(4000),@S2 Nvarchar(4000),@S3 Nvarchar(4000)
Set @S1=''
Set @S2=''
Select @S1=@S1+',SUM(Case IntDay When '+Rtrim(IntDay)+N' Then IntHoursYd Else 0 End) As '''+Rtrim(IntDay)+'''',
@S2=@S2+',SUM(Case IntDay When '+Rtrim(IntDay)+N' Then IntHoursYx Else 0 End) As '''+Rtrim(IntDay)+''''
From vwTG where intyear*10000+intmonth*100+intday between @fristtime and @lasttime and UserDeptID=@depid  and IntDateTypeID=@IntDateTypeID Group By IntDay Order By IntDay
EXEC(N'Select * From(Select 姓名+N''预定加班时间'' As 姓名,工号 '+@S1+N',SUM(IntHoursYd) As 合计 From vwTG where intyear*10000+intmonth*100+intday between ( '+@fristtime+') and ( '+@lasttime+') and UserDeptID=('+ @depid +') and IntDateTypeID=('+ @IntDateTypeID +') Group By 姓名+N''预定加班时间'',工号 Union All Select 姓名,工号 '+@S2+N',SUM(IntHoursYx) As 合计 From vwTG  where intyear*10000+intmonth*100+intday between ( '+@fristtime+') and ( '+@lasttime+') and UserDeptID=('+ @depid +') and IntDateTypeID=('+ @IntDateTypeID +') Group By 姓名,工号) A  Order By (Case 姓名 When N''合计'' Then 1 Else 0 End), 工号,姓名 Desc')
GO 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值