改一下
CREATE PROCEDURE PROC_Test
@paramType int,
@param1 varchar,
@param2 int output,
@paramEmp varchar
if paramType=2
begin
  declare @param3 int  
  declare @param4 int  
  select @param3 from 表A where 字段B=@paramEmp  
  select @param4 = Count(字段A) from 表B where 字段B=@paramEmp 
  set @param2 =@param3 -@param4 
return @param2 
end

解决方案 »

  1.   

    这个一定要求用存储过程吗,一句sql就可以查出来
    你写的存储过程,好几个变量都没定义啊CREATE PROCEDURE PROC_Test
    @paramType int,
    @param1 varchar,
    @param2 int output,
    @paramEmp varchar,
    @paramAvailableDays int output
    as
      declare @paramType2VactionCount int  
      declare @paramType2UsedVacation int  
    if paramType=2
    begin
      select @paramType2VactionCount = 字段A from 表A where 字段B=@paramEmp  
      select @paramType2UsedVacation= Count(字段A) from 表B where 字段B=@paramEmp 
      set @paramAvailableDays=@paramType2VactionCount-@paramType2UsedVacation
    end
      

  2.   


    这只是其中的一个分支,有很多paramType要判断的。觉得存储过程可能会好一些。