日期:2014-05-17  浏览次数:20675 次

求帮写一个简单的,完整的存储过程,谢谢
用MS -SQL2000或2005,2008数据库
要输入三个字段信息,三个字段为:(1)VYWLX(值可以是02或03或04,05,06),(2)VHPZL(值可以为01或02),(3)VHPHM(值样子黑A12345)。
要查询的表名:sh_veh_jdc
要查询的条件:建立一个变量vywblzl
(1)如果VYWLX的值是02则vywblzl=1,如果VYWLX的值是03则vywblzl=2,04=3,05=4,06=5
(2)查找统计出表sh_veh_jdc中,字段clx=vywblzl,and HPZL=VHPZL, and HPHM=VHPHM ,and status不等于2的数据或个数来(可以定义一个变量如VCOUNT1)
(3)一个输出变量RES,如果查找统计出的VCOUNT1>=1则RES=1,如果VCOUNT1=0则RES=0,如果其它另的情况RES=2。   返回RES。

想要这么个存储过程,小弟初学不会,请好心人给个完整的代码

如果能再附加一个JAVA调用这个存储过程的完整代码就更好了,谢谢

持续关注中,必解贴,请大家多帮忙
存储 数据库 java 数据

------解决方案--------------------

IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('TESTPROC') AND type = 'P')
DROP PROC TESTPROC
GO

CREATE PROC TESTPROC
@VYWLX NVARCHAR(10) ,
@VHPZL NVARCHAR(10) ,
@VHPHM NVARCHAR(30)
AS
BEGIN
DECLARE @vywblzl INT,
@VCOUNT1 INT,
@RES INT
SET @vywblzl= CASE @VYWLX WHEN '02' THEN 1
WHEN '03' THEN 2
WHEN '04' THEN 3
WHEN '05' THEN 4
WHEN '06' THEN 5
END;
SET @VCOUNT1=( SELECT COUNT(*)
FROM sh_veh_jdc
WHERE clx=@vywblzl 
and HPZL=@VHPZL 
and HPHM=@VHPHM 
and [status]<>2)
IF @VCOUNT1>=1
SET @RES=1
ELSE IF @VCOUNT1=0
SET @RES=0
ELSE 
SET @RES=2

SELECT @RES
END

马虎了 case 忘了end   clx=@vywblzl  忘了@
------解决方案--------------------
--TRY

IF object_id('test') IS NOT NULL
DROP PROC test 
GO
CREATE PROC test 
(
    @VYWLX        VARCHAR(50),        
    @VHPZL        VARCHAR(50),        
    @VHPHM        VARCHAR(50),                
@RES          TINYINT OUTPUT
)
AS
DECLARE @vywblzl  INT,@VCOUNT1 INT
SET @vywblzl= CASE @VYWLX WHEN '02' THEN 1
                          WHEN '03' THEN 2
                          WHEN '04' THEN 3
      &n