有三个表a1,b1,c1.a1.   aid         a         b       c         
        001         1         2       3 
        002         4         4       5 b1.   bid       aid         d         e 
        001       001       er         er 
        002       002       rr         rr c1.   cid       bid         f           g 
        001       001         fe         a 
        002       001         f0         b 
        003       001         122       c 
 
现在我知道a1表的aid   我要的是b1表的记录且所有c1表里面含有c1.bid=b1.bid的记录的一个字段所有记录的字符连接在一起. 
比如上面几个表可以直观看出     我有A1.aid   001     我要的结果是:b1       001,001   er   er   abc 
急!~

解决方案 »

  1.   


    select a.aid,b,bid,b.d,b,e,c.cola
    from a1 a,b1 b, 
    (
      select   max(substr((sys_connect_by_path(trim(g),'')),2))   cola 
      from   ( 
      select   bid,ge, 
                    rownum   rnum, 
                    row_number()   over(partition   by   bid   order   by   bid)   rn1 
      from   c1
      ) 
      start   with   rn1=1 
      connect   by   rnum-1=prior   rnum 
      group   by   bid 
    ) c
    where a.aid=b.aid and b.bid=c.bid
       and a.aid='001';LZ自已试试吧,大概就是这样子
      

  2.   


    create function wsp(@bid varchar(10))
    returns varchar(100)
    as
    begin
          declare @sql varchar(100)
          select @sql=isnull(@sql,'')+g from c1 where bid=@bid
          return @sql
    endselect bid+','+aid,d,e,dbo.wsp(aid) from b1