当前位置: 代码迷 >> Sql Server >> 一个存储过程请问
  详细解决方案

一个存储过程请问

热度:73   发布时间:2016-04-24 10:44:57.0
一个存储过程请教
想请一下存储过程,我不怎么会写,麻烦会写的,帮一下忙,我写的这个,大家帮我改一下,谢谢。

表A
字段A  字段B
5       E1
表B
字段A  字段B
OK      E1
OK      E1
OK      E1
OK      E2
OK      E3
存储过程实现功能
我传了一个'E1'过来
select 字段A from 表A where 字段B='E1'  字段A是5
select Count(字段A) from 表B where 字段B='E1'  字段A是3
最后的结果为:2    5-3=2

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 @paramAvailableDays=@paramType2VactionCount-@paramType2UsedVacation
return @paramAvailableDays
end

------解决方案--------------------
这个一定要求用存储过程吗,一句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
  相关解决方案