27,580
社区成员
发帖
与我相关
我的任务
分享
DECLARE mycu2 CURSOR FOR SELECT mtl_class,l,w,g,h,oh,isnull(st_qty,0),isnull(zsqty,0) FROM #t4 order by oh
OPEN mycu2
FETCH NEXT FROM mycu2 INTO @mtl_class ,@l ,@w ,@g ,@h,@oh,@st_qty ,@zsqty
WHILE @@FETCH_STATUS = 0
BEGIN
if substring(@mtl_class,3,1)<>'Y'
begin
if substring(@mtl_class,3,1)='D'
begin
set @mtl_des = cast(@l as varchar(10))
if @g <> 6 set @mtl_des =@mtl_des+'x'+cast(@g as varchar(10))
set @mtl_name ='圓形管'+cast(@l as varchar(10))+'x'+ cast(@g as varchar(10))
end
else
begin
set @mtl_des = cast(@l as varchar(10)) +'x'+cast(@w as varchar(10))
if @g <> 6 set @mtl_des =@mtl_des+'x'+cast(@g as varchar(10))
if substring(@mtl_class,3,1)<>'F'
set @mtl_name ='方形管'+cast(@l as varchar(10)) +'x'+ cast(@w as varchar(10))+'x'+cast(@g as varchar(10))
else
set @mtl_name ='矩形管'+cast(@l as varchar(10)) +'x'+ cast(@w as varchar(10))+'x'+cast(@g as varchar(10))
end
end
else
begin
set @mtl_des = cast(@l as varchar(10))
if @g <> 6 set @mtl_des =@mtl_des+'x'+cast(@g as varchar(10))
set @mtl_name ='圓形管'+cast(@l as varchar(10))+'x'+cast(@g as varchar(10))
end
if substring(@mtl_class,1,2) ='YF'
begin
if substring(@mtl_class,3,1) ='Y'
begin
set @mtl_name='B0'
set @cmtlcode='園B'
end
else
begin
if substring(@mtl_class,3,1) ='F'
set @mtl_name='B1'
else
begin
if substring(@mtl_class,3,1) ='H'
set @mtl_name='B3'
else
begin
if substring(@mtl_class,3,1) ='D' set @mtl_name='B4' else set @mtl_name='B2'
end
end
end
end
else
begin
if substring(@mtl_class,1,2) ='YP'
begin
set @mtl_name='A2'
set @cmtlcode='矩'
if substring(@mtl_class,3,1) ='Y'
begin
set @mtl_name='A0'
set @cmtlcode='園'
end
if substring(@mtl_class,3,1) ='F'
BEGIN
set @mtl_name='A1'
set @cmtlcode='方'
END
if substring(@mtl_class,3,1) ='H'
begin
set @mtl_name='A3'
set @cmtlcode='花'
end
if substring(@mtl_class,3,1) ='D'
begin
set @mtl_name='A4'
set @cmtlcode='訂'
end
end
else
begin
set @mtl_name='C'
set @cmtlcode='不'
end
end
set @tqty =( case when @lb=0 then cast(@st_qty as varchar(10))
when @lb=1 then cast(@zsqty as varchar(10))
else cast(@st_qty as varchar(10)) +' / ' + cast(@zsqty as varchar(10)) end)
-- select @mtl_name ,@mtl_des,@stqty,@mtl_class,@zsqty
set @sql= ' if not exists( select * from '+@USERID +' where mtl_class='+char(39)+@mtl_class+char(39)+' and mtl_des='+char(39)+@mtl_des+char(39)+')'+
' begin ' +
' insert ' +@USERID +' (mtl_class,mtl_des,mtl_name,sn,['+@oh+'],cmtldes) '+
' select ' + char(39)+@mtl_class+char(39)+','+char(39)+@mtl_des+char(39)+','+char(39)+@mtl_name+char(39)+','+cast(isnull(@l,0) as varchar(10))+','+char(39)+@tqty+char(39)+','+char(39)+@cmtlcode+char(39)+
' end ' +
' else ' +
' update ' + @USERID +' set ['+@oh+'] = '+char(39)+@tqty +char(39)+' where mtl_class='+char(39)+@mtl_class +char(39)+' and mtl_des= '+char(39)+@mtl_des+char(39)
exec( @sql)
FETCH NEXT FROM mycu2 INTO @mtl_class ,@l ,@w ,@g ,@h,@oh,@st_qty ,@zsqty
END
CLOSE mycu2
DEALLOCATE mycu2
EXEC('SELECT * FROM '+@USERID + ' order by mtl_name,sn,mtl_class,mtl_des')
select * from a where checksum(*) not in(select checksun(*) from b)
select * from 表1
except
select * from 表2
select a.col1/b.col2 as col3
from a,b
where a.[] = b.[]
select a.sn,
a.Xn,
a.M_class,
a.mtl_des,
a.mtl_name,
case a.[0.6厚] when null then null else a.[0.6厚]/isnull(b.[0.6厚],1) end as [0.6厚],
case a.[0.7厚] when null then null else a.[0.7厚]/isnull(b.[0.7厚],1) end as [0.7厚],
case a.[0.8厚] when null then null else a.[0.8厚]/isnull(b.[0.7厚],1) end as [0.8厚]from 表1 a ,表2 b where a.sn =b.sn and a.Xn =b.Xn and a.M_class =b.M_class
[Quote=引用 22 楼 jason19810924 的回复:]select a.sn,
a.Xn,
a.M_class,
a.mtl_des,
a.mtl_name,
a.[0.6厚]/isnull(b.[0.6厚],1) as [0.6厚],
a.[0.7厚]/isnull(b.[0.7厚],1) as [0.7厚],
a.[0.8厚]/isnull(b.[0.8厚],1) as [0.8厚]
from 表1 a ,表2 b where a.sn =b.sn and a.Xn =b.Xn and a.M_class =b.M_class
select a.sn,
a.Xn,
a.M_class,
a.mtl_des,
a.mtl_name
a.[0.6厚]/b.[0.6厚] as [0.6厚],
a.[0.7厚]/b.[0.7厚] as [0.7厚],
a.[0.8厚]/b.[0.8厚] as [0.8厚]
from 表1 a ,表2 b where a.sn =b.sn and a.Xn =b.Xn