表结构如下:tbl(Tag nvarchar(7),PartNo nvarchar(16),Qty float)  测试数据如下:  Tag          PartNo           Qty  0243306      000-1609-1       1000  0243322      000-1609-1       2000  0239787      000-1700-1       1500  0239834      000-1700-1       500
  分组计算结果为:  Tag               PartNo           Qty
  
  0243306/0243322   000-1609-1      3000  0239787/0239834   000-1700-1      2000  以上只是个条测试数据,我只想找个解决方法,现实中数据会更复杂些.  解决立即送分!

解决方案 »

  1.   

    create table tbl(Tag nvarchar(7),PartNo nvarchar(16),Qty float)
    insert into tbl select
      '0243306',      '000-1609-1'     ,  1000  union select   '0243322',      '000-1609-1'      , 2000 union select   '0239787',      '000-1700-1'       ,1500 union select
      '0239834',      '000-1700-1'       ,500  create function link_tag(@partno  varchar(16))
    returns varchar(8000)
    as
    begin
    declare @tag varchar(8000)
    set @tag=''
    select @tag=@tag+'/'+Tag
    from tbl
    where PartNo=@partno
    order by Tag
    set @tag=stuff(@tag,1,1,'')
    return @tag
    end---drop function link_tagselect dbo.link_tag(PartNo) as Tag   ,PartNo,sum(Qty) as Qty
    from tbl
    group by PartNo
      

  2.   

    Tag                       PartNo           Qty    
    --------------------- 
    0243306/0243322       000-1609-1       3000.0
    0239787/0239834       000-1700-1       2000.0(所影响的行数为 2 行)