create table #d0(产品编号 char(13),库房 char(10),批号 char(16),效期 datetime,标识 char(16),库房数量 numeric(18,0),数量 numeric(18,0),客户编码 char(10),票号 char(16),序号 int)   
insert into #d0(产品编号,库房,批号,效期,标识,库房数量,数量,客户编码,票号,序号)select 产品编号,库房,批号,效期,标识,库房数量,数量,保管员,票号,序号 from YFCC where exists(select 产品编号 from cp where yfcc.产品编号=cp.产品编号 and (cp.最低价-yfcc.单价)/cp.最低价<0.05 and 库房数量>0)
create index ix_d0 on #d0(产品编号)  insert into yscc(票号,序号,小号,产品编号,库房,批号,效期,标识,库房数量,数量,件数,保管员,审核时间,业务1,业务2,业务3,业务4,业务5,单价,金额,入库票号,入库序号) select top 1 @p,@x,'1',#d1.产品编号,#d1.库房,#d1.批号,#d1.效期,#d1.标识,#d1.库房数量,#d1.票号,#d1.序号 from #d1 inner join cp on cp.产品编号 = #d1.产品编号 COLLATE Chinese_PRC_CI_AS  and left(批号,6) between @i and @ii and cast(convert(varchar,(@yyy+@ddd),112) as datetime)<效期 and #d1.产品编号=@o and #d1.库房数量>0 and substring(#d1.票号,5,8)<substring(@p,5,8) order by 效期提示:
服务器: 消息 206,级别 16,状态 2,行 248
操作数类型冲突: int 与 void type 不兼容
服务器: 消息 8117,级别 16,状态 1,行 300
操作数数据类型 numeric 无效(运算符 modulo)。SQL2005没问题,在2000下出上面的提示

解决方案 »

  1.   

    提示: 
    服务器:   消息   206,级别   16,状态   2,行   248 
    操作数类型冲突:   int   与   void   type   不兼容 
    服务器:   消息   8117,级别   16,状态   1,行   300 
    操作数数据类型   numeric   无效(运算符   modulo)。 SQL2005没问题,在2000下出上面的提示
    -----------------------------------------
    有的字段为NULL?
      

  2.   

    insert   into   yscc
    (票号,序号,小号,产品编号,库房,批号,效期,标识,库房数量,数量,件数,保管员,审核时间,业务1,业务2,业务3,业务4,业务5,单价,金额,入库票号,入库序号)   
    select   top   1   @p,@x,'1',#d1.产品编号,#d1.库房,#d1.批号,#d1.效期,#d1.标识,#d1.库房数量,#d1.票号,#d1.序号  
    --------检查一下对应的列类型是否一至
      

  3.   

    ok了
    是那个库房数量是numeric 型,cast(库房数量 as int)就可以了,谢谢你们的帮忙,分照给