SQLSERVER-sp_executesql OUT

ALTER proc [dbo].[proc_Leave_Application_GetAvisibleLeaveByUser_LeaveType]
@userID uniqueidentifier,
@leaveType uniqueidentifier , 
@usedLeaves decimal(18,1) output,
@userTotal decimal(18,1) output
as
begin

		
		--跨年--
        DECLARE @startDate datetime=convert(datetime,convert(nvarchar,YEAR(GETDATE())*10000+101)) 
        DECLARE @endDate datetime =convert(datetime,convert(nvarchar,YEAR(GETDATE())*10000+1231))
	 
		---end----
		DECLARE @SQL NVARCHAR(MAX) =  N'   set @userTotal = (select DefaultDays from Leave_Defaultleave  where LeaveType='''+LOWER(convert(nvarchar(36),@leaveType,36))+''' and EmployeeCode = '''+LOWER(convert(nvarchar(36),@userID,36))+ '''  )'
		SELECT @SQL  +=  N' if @userTotal = 0'
		SELECT @SQL  +=  N'	begin set  @usedLeaves = 0	end '
		SELECT @SQL  +=  N'     else if @userTotal is null '
		SELECT @SQL  +=  N' begin set @userTotal = 0 set @usedLeaves= 0 end'
		SELECT @SQL  +=  N'	else begin'
		SELECT @SQL  +=  N'	set @usedLeaves= (select isnull(SUM(isnull(LeaveDays,0)),0) from  Leave_Application where EmployeeCode = '''+LOWER(convert(nvarchar(36),@userID,36))+ ''' '
		SELECT @SQL  +=  N'	and LeaveType = '''+LOWER(convert(nvarchar(36),@leaveType,36))+'''  '
		SELECT @SQL  +=  N'	and Status in (select id from Master_Status where IsValid=1)'
		SELECT @SQL  +=  N'	and ApplicationID not in(select ApealApp  from Leave_Apeal) '
		SELECT @SQL  +=  N'	and ApplicationID not in(select NewApp  from Leave_Apeal where NewApp is not null))+ (select ISNULL(SUM(isnull(LeaveDays,0)),0) from  Leave_Application where EmployeeCode = '''+LOWER(convert(nvarchar(36),@userID,36))+ '''  '
		SELECT @SQL  +=  N'	and LeaveType = '''+LOWER(convert(nvarchar(36),@leaveType,36))+''' '
		SELECT @SQL  +=  N'	and Status in (''1E56709C-34FC-418D-A6B5-6EF04DD8D86B'')'
		--跨年----
		if   @LeaveType <>'00000000-0000-0000-0000-000000000000' and @leaveType = '3A30752C-DED9-4A94-AF92-2906A686A321'
		 SELECT  @SQL  +=  N'	and  YEAR(StartDate)= YEAR('''+convert(nvarchar,@startDate,113)+''')  and  YEAR(EndDate) =YEAR('''+convert(nvarchar,@endDate,113)+''') '

		----END------
		SELECT @SQL  +=  N' and (ApplicationID  in(select ApealApp  from Leave_Apeal) or ApplicationID  in(select NewApp  from Leave_Apeal where NewApp is not null)) '
		SELECT @SQL  +=  N'	and  ApplicationID not in(select OldApp   from Leave_Apeal where OldApp is not null)) '
		SELECT @SQL  +=  N'	end  '
		--print @SQL

		EXEC sp_executesql  @SQL , N' @userTotal decimal(18,1) out , @usedLeaves decimal(18,1) out ' , @userTotal =@userTotal out ,@usedLeaves = @usedLeaves  out
		print @userTotal  print @usedLeaves
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值