update 车间主需求计划分解历史 set 计划累计=计划累计+convert(numeric(4),dtjs1) * d.@selectthismonth
         from 工厂产品台数累计台帐  as d,
        ( select 零件编号,型号,'srlj1'=收入累计 ,'zclj1'=支出累计,'jylj1'=结余累计,'dtjs1'=单台件数  from four零件清单   ) as e 
where   车间主需求计划分解历史.零件编号=e.零件编号 and 车间主需求计划分解历史.借用产品型号=e.型号   AND 车间主需求计划分解历史.借用产品型号= d.型号或部件   AND 车间主需求计划分解历史.部门型号部件任务编号= @bmrwbh  AND 车间主需求计划分解历史.借用产品型号 <> ""d.@selectthismonth  报错
 
(@selectthismonth是存储过程中传入的变量)

解决方案 »

  1.   

    (@selectthismonth是存储过程中传入的变量)是什么意思?
     d.@selectthismonth   工厂产品台数累计台帐  as d, 
    工厂产品台数累计台帐.@selectthismonth   ?
      

  2.   

    存储过程中传入的变量是:
    PROCEDURE sf_测试欠件上月本月(@bmrwbh varchar(50), @xh   varchar(20),  @thismonth   varchar(20) , @lastmonth   varchar(20), @selectthismonth   varchar(20) , @selectlastmonth   varchar(20) )
      

  3.   

      declare   @a   nvarchar(50)   
      declare   @tmpstr   nvarchar(500)   
      set   @a='tt'   
      set   @tmpstr='select   '+@a+'= ' + @selectthismonth + '   from  工厂产品台数累计台帐 where 型号或部件= ' + @xh + ' '   
      exec(@tmpstr)
    以上出错了,不知为何
      

  4.   

      declare   @a   nvarchar(50)  
       declare   @dtjs1   nvarchar(50)  
      declare   @tmpstr   nvarchar(500)   
      set   @dtjs1='' 
      set   @a='tt'   
      set   @tmpstr='     update 车间主需求计划分解历史 set 计划累计=计划累计+convert(numeric(4),"'+ @dtjs1 +'") * 工厂产品台数累计台帐.'+@selectthismonth+')
             from 工厂产品台数累计台帐  as d,
            ( select 零件编号,型号,"'+ @dtjs1 +'"=单台件数  from four零件清单   ) as e 
    where   车间主需求计划分解历史.零件编号=e.零件编号 and 车间主需求计划分解历史.借用产品型号=e.型号   AND 车间主需求计划分解历史.借用产品型号= d.型号或部件   AND 车间主需求计划分解历史.部门型号部件任务编号= "'+@bmrwbh+'"  AND 车间主需求计划分解历史.借用产品型号 <> "" '
       
      exec(@tmpstr)
    以上又出错了, 只看以上语句, 高人阿,