create table aa(ID varchar(10),Name varchar(20))
insert aa select '001','yy'
union all select '002', 'tt'
create table bb(ID1 varchar(10),Name1 varchar(10),ID varchar(10))
insert bb select '1001', 'aa', '001'
union all select '1002', 'bb', '001'
union all select '1003', 'cc', '002'
union all select '1004', 'dd', '002'
select Name from(
select * from aa
union all
select distinct aa.id, dbo.fn_aa(bb.id) x from bb Inner Join aa on bb.id=aa.id
) x
order by id,name desc
create function fn_aa(@a varchar(10))
returns varchar(100)
begin
declare @b varchar(100)
set @b=''
select @b=@b+Name1+' '+ID1+',' from bb where id=@a
return left(@b,len(@b)-1)
end

解决方案 »

  1.   

    Create table #t1(id char(3),name varchar(6))
    go
    INSERT #t1 values('001','yy')
    INSERT #t1 values('002','tt')
    go
    CREATE Table #t2(Id1 varchar(4),name1 varchar(4),Id char(3))
    go
    INSERT #t2 values('1001','aa','001')
    INSERT #t2 values('1002','bb','001')
    INSERT #t2 values('1003','cc','002')
    INSERT #t2 values('1004','dd','002')
    goselect Id1 + ' '+Name1 AS combinecols ,Id,identity(int,1,1) as seq Into #t3 from #t2 order by id,id1select a.combinecols +','+ b.combinecols as connstr,a.id into #t4 from #t3 a,#t3  b where a.id = b.id and a.seq = b.seq-1declare @yy varchar(50)
    declare @tt varchar(50)
    select @yy = connstr
    from #t4
    where id = '001'
    select @tt = connstr from #t4 where id = '002'
    select @yy,@tt