请问如何请以下代码改成存储过程,如果满足条返回true,如果不满足条返回false(我想通过前台程序直接调用该存储过程直接通过返回值来判断条件是否满足)declare @jine varchar(50)
declare @shuliang varchar(50)
declare @sum_hzmx int
declare @ny varchar(20)
declare @ny1 varchar(20)
declare @sum_tb_huikuaninfo int
declare @val_tb_huikuaninfo int
set @val_tb_huikuaninfo=0
set @ny='2007-11-15'
set @ny1='20071115'
set @sum_hzmx=0
set @sum_tb_huikuaninfo=0
Declare HR_cursor cursor for select jine,shuliang from tb_hzmx where dz_date=@ny order by jine
open HR_cursor
Fetch Next from HR_cursor into @jine,@shuliang
while @@Fetch_status=0
beginset @sum_hzmx=@sum_hzmx+CAST(@shuliang as int)
select @val_tb_huikuaninfo=count(*) from tb_huikuaninfo where dzdate=@ny1 and HueiKuanMoney=@jine
set @sum_tb_huikuaninfo=@sum_tb_huikuaninfo+CAST(@val_tb_huikuaninfo AS int)
--select @sum_tb_huikuaninfo
Fetch Next From HR_cursor into @jine,@shuliang
end
close HR_cursor
Deallocate HR_cursor
--select @sum_hzmx
--select @sum_tb_huikuaninfo
--如果记录数据相同返回true
if @sum_hzmx=@sum_tb_huikuaninfo
print 'true'
else
--如果记录数据不相同返回false
print 'false'
declare @shuliang varchar(50)
declare @sum_hzmx int
declare @ny varchar(20)
declare @ny1 varchar(20)
declare @sum_tb_huikuaninfo int
declare @val_tb_huikuaninfo int
set @val_tb_huikuaninfo=0
set @ny='2007-11-15'
set @ny1='20071115'
set @sum_hzmx=0
set @sum_tb_huikuaninfo=0
Declare HR_cursor cursor for select jine,shuliang from tb_hzmx where dz_date=@ny order by jine
open HR_cursor
Fetch Next from HR_cursor into @jine,@shuliang
while @@Fetch_status=0
beginset @sum_hzmx=@sum_hzmx+CAST(@shuliang as int)
select @val_tb_huikuaninfo=count(*) from tb_huikuaninfo where dzdate=@ny1 and HueiKuanMoney=@jine
set @sum_tb_huikuaninfo=@sum_tb_huikuaninfo+CAST(@val_tb_huikuaninfo AS int)
--select @sum_tb_huikuaninfo
Fetch Next From HR_cursor into @jine,@shuliang
end
close HR_cursor
Deallocate HR_cursor
--select @sum_hzmx
--select @sum_tb_huikuaninfo
--如果记录数据相同返回true
if @sum_hzmx=@sum_tb_huikuaninfo
print 'true'
else
--如果记录数据不相同返回false
print 'false'
@Result Varchar(10)
As
SET NOCOUNT ON --关闭回响
declare @jine varchar(50)
declare @shuliang varchar(50)
declare @sum_hzmx int
declare @ny varchar(20)
declare @ny1 varchar(20)
declare @sum_tb_huikuaninfo int
declare @val_tb_huikuaninfo int
set @val_tb_huikuaninfo=0
set @ny='2007-11-15'
set @ny1='20071115'
set @sum_hzmx=0
set @sum_tb_huikuaninfo=0
Declare HR_cursor cursor for select jine,shuliang from tb_hzmx where dz_date=@ny order by jine
open HR_cursor
Fetch Next from HR_cursor into @jine,@shuliang
while @@Fetch_status=0
beginset @sum_hzmx=@sum_hzmx+CAST(@shuliang as int)
select @val_tb_huikuaninfo=count(*) from tb_huikuaninfo where dzdate=@ny1 and HueiKuanMoney=@jine
set @sum_tb_huikuaninfo=@sum_tb_huikuaninfo+CAST(@val_tb_huikuaninfo AS int)
--select @sum_tb_huikuaninfo
Fetch Next From HR_cursor into @jine,@shuliang
end
close HR_cursor
Deallocate HR_cursor
--select @sum_hzmx
--select @sum_tb_huikuaninfo
--如果记录数据相同返回true
if @sum_hzmx=@sum_tb_huikuaninfo
select @Result= 'true'
else
--如果记录数据不相同返回false
select @Result='false'
SET NOCOUNT OFF
Create Proc P_Test
@Result Varchar(10) out
是这样吗??
但exec P_Test 执行提示:必须声明变量 '@Result'。
---------------------------------------------------
Create Proc P_Test
@Result Varchar(10) out
As
SET NOCOUNT ON --关闭回响
declare @jine varchar(50)
declare @shuliang varchar(50)
declare @sum_hzmx int
declare @ny varchar(20)
declare @ny1 varchar(20)
declare @sum_tb_huikuaninfo int
declare @val_tb_huikuaninfo int
set @val_tb_huikuaninfo=0
set @ny='2007-11-15'
set @ny1='20071115'
set @sum_hzmx=0
set @sum_tb_huikuaninfo=0
Declare HR_cursor cursor for select jine,shuliang from tb_hzmx where dz_date=@ny order by jine
open HR_cursor
Fetch Next from HR_cursor into @jine,@shuliang
while @@Fetch_status=0
beginset @sum_hzmx=@sum_hzmx+CAST(@shuliang as int)
select @val_tb_huikuaninfo=count(*) from tb_huikuaninfo where dzdate=@ny1 and HueiKuanMoney=@jine
set @sum_tb_huikuaninfo=@sum_tb_huikuaninfo+CAST(@val_tb_huikuaninfo AS int)
--select @sum_tb_huikuaninfo
Fetch Next From HR_cursor into @jine,@shuliang
end
close HR_cursor
Deallocate HR_cursor
--select @sum_hzmx
--select @sum_tb_huikuaninfo
--如果记录数据相同返回true
if @sum_hzmx=@sum_tb_huikuaninfo
select @Result= 'true'
else
--如果记录数据不相同返回false
select @Result='false'
SET NOCOUNT OFF
exec P_Test @Result output
select @Result
将 varchar 值 'true' 转换为数据类型为 int 的列时发生语法错误。
@ny varchar(20)
,@result varchar(20) output
as
set nocount ondeclare @ny1 varchar(20)
set @ny1= replace(@ny,'-','')declare @sum_hzmx int
declare @sum_tb_huikuaninfo intset @sum_tb_huikuaninfo = (select sum(cast(shuliang as int)) from tb_hzmx where dz_date=@ny)set @sum_hzmx = (select count(1) from tb_huikuaninfo where dzdate=@ny1 and HueiKuanMoney in (select jine from tb_hzmx where dz_date=@ny)if @sum_tb_huikuaninfo = @sum_hzmx
set @Result = 'true'
else
set @result = 'false'return