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

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
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

hzh_wen_x

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值