有4张表结构如下表1: Comapny
CompanyID CompanyName
1       北京
2       上海
3       广东
4       天津
5       福建表2: BasicData
BasicID   content
1    测试1
2    测试2
3    测试3表3: A_SubData (外键关联以上Comany 和 BasicData表)
AID  companyID BasicID AData
1    1          1      A_SubData数据1
2    1          2      A_SubData数据2
3    1          4      A_SubData数据3
4    2          2      A_SubData数据4
5    2          3      A_SubData数据5表4: B_SubData (外键关联以上Comany 和 BasicData表)
BID  companyID BasicID  BData
1    1          1      B_SubData数据1
2    1          2      B_SubData数据2
3    1          4      B_SubData数据3
4    2          2      B_SubData数据4
5    2          3      B_SubData数据5想要的显示结果格式如下:测试1 北京 A_SubData数据1  B_SubData数据1 上海 A_SubData数据2 B_SubData数据2
测试2 上海 A_SubData数据4  B_SubData数据4 广东 A_SubData数据5 B_SubData数据5
......
以上结果分别从:BasicData表,Comapany表,A_SubData表,B_SubData表,Comapany表,A_SubData表,B_SubData表 取得

解决方案 »

  1.   

    SELECT t.CONTENT ,replace(wm_concat( t.name),',','  ') FROM (
       SELECT B.CONTENT, A.COMPANYNAME||'  '||C.ADATA||'  '||d.BDATA AS NAME 
      FROM COMAPNY A, BASICDATA B, A_SUBDATA C,B_SubData d 
     WHERE A.COMPANYID = C.COMPANYID
       AND B.BASICID = C.BASICID
       AND a.COMPANYID=d.COMPANYID
       AND b.BASICID=d.BASICID ) t  GROUP BY t.CONTENT 
      

  2.   

    我写改了你的b_subData 的一条数据SQL> SELECT t.CONTENT ,replace(wm_concat( t.name),',',' ') FROM (
      2    SELECT B.CONTENT, A.COMPANYNAME||' '||C.ADATA||' '||d.BDATA AS NAME
      3    FROM COMAPNY A, BASICDATA B, A_SUBDATA C,B_SubData d
      4   WHERE A.COMPANYID = C.COMPANYID
      5    AND B.BASICID = C.BASICID
      6    AND a.COMPANYID=d.COMPANYID
      7    AND b.BASICID=d.BASICID ) t GROUP BY t.CONTENT ;CONTENT
    --------------------
    REPLACE(WM_CONCAT(T.NAME),',','')
    ------------------------------------------------------------------------------测试1 北京 A_SubData数据1 B_SubData数据1测试2 北京 A_SubData数据2 B_SubData数据2 上海 A_SubData数据4 B_SubData数据4
      

  3.   


    select content, wm_concat(companyname || '   ' || adata || '   ' || bdata) 
      from (select t1.companyname, t2.content, t3.adata, t4.bdata
              from Comapny t1, BasicData t2, A_SubData t3, B_SubData t4
             where t1.companyid = t3.companyid
               and t2.basicid = t3.basicid
               and t4.companyid = t1.companyid
               and t4.basicid = t2.basicid)
     group by content