使用变量返回值变为零时的存储过程

时间:2014-11-09 17:22:28

标签: sql asp.net

请检查存储过程 - 我的错误是什么?我正在尝试将计算值分配给变量。

Alter Proc [dbo].[FindAnnualLeave1]
   @Empid varchar(20)
as
   Declare @AnnualPending int

   Select 
      @AnnualPending = (select (0.0821917808219178) * DATEDIFF(d, e.doj,GETDATE())- l.Leaves 
                        where l.EmpLeaveCode = 'Annual')

   From 
      EmployeeLeaves l
   inner join 
      EmployeeMaster e on l.EmpID = e.EmpID
   where 
      l.EmpID = e.EmpID

   return @AnnualPending
Go

此查询不返回任何内容。我想在命令按钮单击后将此变量显示到asp.net标签。如果我不使用变量,我的意思是只有select语句,它返回值。我试过asp和sql。

1 个答案:

答案 0 :(得分:1)

存储过程的返回类型用于返回退出代码,即int

您的计算结果是0到1之间的值

您需要定义float或numeric(10,4)类型的输出变量并返回该值

 Alter Proc [dbo].[FindAnnualLeave1]
@Empid varchar(20),        
@AnnualPending numeric(10,4) OUTPUT