declare @i int, @sql nvarchar(4000), @sSqlString nvarchar(4000), @orgid nvarchar(4)
set @orgid = '0015'  select @i = max(ClassId) from CustmerManagerClass
   while @i > 0 
   begin 
     select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid
     set @sql = 'insert into ##custmerManagerClass select a.*, (a.净手续费 - a.手续费 * 0.0855) as 净佣金, ((a.净手续费 - a.手续费 * 0.0855) * b.pushmoneyRate) as 佣金提成, ClassId = ' + convert(char, @i) + ', b.ClassName as 级别名称, b.ClassAlias as 级别别称, b.ClassBaseWage as 基本工资, b.ClassPerformanceWage as 绩效工资, b.MonthAssessBaseguideline1 as 月考核基础指标1, b.MonthAssessBaseguideline2 as 月考核基础指标2, b.MonthAssessBaseguideline3 as 月考核基础指标3, b.MonthAssessBaseguideline4 as 月考核基础指标4, b.ClassPrescribe as 定级累计资产, b.pushmoneyRate as 提成比例 from ##customerManagerSumAssetMatchamt a, CustmerManagerClass b where (' + @sSqlString + ') and b.ClassId = ' + convert(char, @i)
     exec(@sql)
     set @i = @i - 1 
   end这一句出错,select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid  
报没有申明变量@ogrid  

解决方案 »

  1.   

    写错了
    @ogrid -》@orgid 
      

  2.   

    declare @i int, @sql nvarchar(4000), @sSqlString nvarchar(4000), @orgid nvarchar(4)
    set @orgid = '0015'  select @i = max(ClassId) from CustmerManagerClass
       while @i > 0 
       begin 
         select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @orgid
         set @sql = 'insert into ##custmerManagerClass select a.*, (a.净手续费 - a.手续费 * 0.0855) as 净佣金, ((a.净手续费 - a.手续费 * 0.0855) * b.pushmoneyRate) as 佣金提成, ClassId = ' + convert(char, @i) + ', b.ClassName as 级别名称, b.ClassAlias as 级别别称, b.ClassBaseWage as 基本工资, b.ClassPerformanceWage as 绩效工资, b.MonthAssessBaseguideline1 as 月考核基础指标1, b.MonthAssessBaseguideline2 as 月考核基础指标2, b.MonthAssessBaseguideline3 as 月考核基础指标3, b.MonthAssessBaseguideline4 as 月考核基础指标4, b.ClassPrescribe as 定级累计资产, b.pushmoneyRate as 提成比例 from ##customerManagerSumAssetMatchamt a, CustmerManagerClass b where (' + @sSqlString + ') and b.ClassId = ' + convert(char, @i)
         exec(@sql)
         set @i = @i - 1 
       end
      

  3.   


    declare @i int, @sql nvarchar(4000), @sSqlString nvarchar(4000), @orgid nvarchar(4)
    set @orgid = '0015'  select @i = max(ClassId) from CustmerManagerClass
       while @i > 0 
       begin 
         select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid
         set @sql = 'insert into ##custmerManagerClass select a.*, (a.净手续费 - a.手续费 * 0.0855) as 净佣金, ((a.净手续费 - a.手续费 * 0.0855) * b.pushmoneyRate) as 佣金提成, ClassId = ' + convert(char, @i) + ', b.ClassName as 级别名称, b.ClassAlias as 级别别称, b.ClassBaseWage as 基本工资, b.ClassPerformanceWage as 绩效工资, b.MonthAssessBaseguideline1 as 月考核基础指标1, b.MonthAssessBaseguideline2 as 月考核基础指标2, b.MonthAssessBaseguideline3 as 月考核基础指标3, b.MonthAssessBaseguideline4 as 月考核基础指标4, b.ClassPrescribe as 定级累计资产, b.pushmoneyRate as 提成比例 from ##customerManagerSumAssetMatchamt a, CustmerManagerClass b where (' + @sSqlString + ') and b.ClassId = ' + convert(char, @i)
         exec(@sql)
         set @i = @i - 1 
       end这一句出错,select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid  
    报没有申明变量@ogrid 
    比较一下蓝色和红色部分
      

  4.   

    declare @i int, @sql nvarchar(4000), @sSqlString nvarchar(4000), @orgid nvarchar(4)
    set @orgid = '0015'  select @i = max(ClassId) from CustmerManagerClass
       while @i > 0 
       begin 
         select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid
         set @sql = 'insert into ##custmerManagerClass select a.*, (a.净手续费 - a.手续费 * 0.0855) as 净佣金, ((a.净手续费 - a.手续费 * 0.0855) * b.pushmoneyRate) as 佣金提成, ClassId = ' + convert(char, @i) + ', b.ClassName as 级别名称, b.ClassAlias as 级别别称, b.ClassBaseWage as 基本工资, b.ClassPerformanceWage as 绩效工资, b.MonthAssessBaseguideline1 as 月考核基础指标1, b.MonthAssessBaseguideline2 as 月考核基础指标2, b.MonthAssessBaseguideline3 as 月考核基础指标3, b.MonthAssessBaseguideline4 as 月考核基础指标4, b.ClassPrescribe as 定级累计资产, b.pushmoneyRate as 提成比例 from ##customerManagerSumAssetMatchamt a, CustmerManagerClass b where (' + @sSqlString + ') and b.ClassId = ' + convert(char, @i)
         exec(@sql)
         set @i = @i - 1 
       end这一句出错,select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid  
    报没有申明变量@ogrid 
      

  5.   

    我晕死了,加了个SQL的代码脚本,CSDN连颜色也不认了,居然是@orgid 这样的搞什么飞机呀??
      

  6.   

    @ogrid -》@orgid --参数名称,你打字的时候打错了!
      

  7.   


    declare @i int, @sql nvarchar(4000), @sSqlString nvarchar(4000), @orgid nvarchar(4)
    set @orgid = '0015' --你定义赋值的变量是@orgid select @sSqlString = ClassPrescribe from CustmerManagerClass where ClassId = @i and orgid = @ogrid
    --你下面调用的时候orgid = @ogrid写错了,把org写成了ogr!!!