请问如何请以下代码改成存储过程,如果满足条返回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'

解决方案 »

  1.   

    Create Proc P_Test
    @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
      

  2.   

    笔误:
    Create Proc P_Test
    @Result Varchar(10) out
      

  3.   


    是这样吗??
    但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
      

  4.   

    --这样调用试试declare @Result Varchar(10)
    exec P_Test @Result output
    select @Result
      

  5.   

    服务器: 消息 245,级别 16,状态 1,过程 P_Test,行 35
    将 varchar 值 'true' 转换为数据类型为 int 的列时发生语法错误。
      

  6.   

    create procedure p_test
    @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