请复制到查询器中运行:create function getSql(@reid int)
returns varchar(8000) as 
begin
    declare @rsql varchar(8000)
    declare @count int
    declare @i int
     select @count=总重量/每缸重量 from tmp where recordid=@reid
     set @rsql='select 色号,名称,总重量,每缸重量,总重量/每缸重量 as 批次,1 as 序号 from tmp where recordid='+ cast(@reid as varchar(4))
     set @i=2
     while @i<=@count
      begin
             set @rsql=@rsql+' 
union(select 色号,名称,总重量,每缸重量,总重量/每缸重量 as 批次,'+cast(@i as varchar(4))+' as 序号 from tmp where recordid='+ cast(@reid as varchar(4))+') '
             set @i=@i+1
      end
     return @rsql
end
 
create table tmp(recordid int,色号 int, 名称 varchar(10), 总重量 int, 每缸重量 int)
insert tmp values(11,9876,'羊毛',480, 96)
select * from tmp
declare @sql varchar(8000)select @sql=dbo.getsql(11)
exec (@sql)
drop table tmp
drop function getsql