select bmb01,bmb02,bmb03,(select WMSYS.WM_CONCAT(bmt06) from ds01.bmt_file where bmt01=a.bmb01 and bmt03=a.bmb03)
from ds01.bmb_file a where bmb01='201511S2U000'
上述SQL语句是我在数据库中拼接出来的,输出的结果集是符合我的要求的。现在,想把这个语句应用到一个报表里,但那个自定义报表工具里只允许SQL语句有一个where,否则就造成传递的动态参数有问题。

解决方案 »

  1.   

    SELECT BMB01, BMB02, BMB03, WMSYS.WM_CONCAT(BMT06)
      FROM DS01.BMB_FILE A, DS01.BMT_FILE B
     WHERE A.BMB01 = '201511S2U000'
       AND B.BMT01 = A.BMB01
       AND B.BMT03 = A.BMB03
     GROUP BY BMB01, BMB02, BMB03;
      

  2.   


    回楼上这位,我试了下,你的代码不行。
    可能是因为我没说清楚吧,不行的原因是由于bmb_file里的部分数据在bmt_file里是没有对应的bmt06数据的
    我自己拼接的代码里是能够查出这部分数据,而你这的个就查不出这部分。
      

  3.   


    select  bmb01,bmb02,bmb03,WMSYS.WM_CONCAT(bmt06)
    from ds01.bmb_file a left join ds01.bmt_file b on b.bmt01=a.bmb01 and b.bmt03=a.bmb03
    where a.bmb01='201511S2U000'
      

  4.   


    select  a.bmb01,a.bmb02,a.bmb03,WMSYS.WM_CONCAT(b.bmt06)
    from ds01.bmb_file a left join ds01.bmt_file b on b.bmt01=a.bmb01 and b.bmt03=a.bmb03
    where a.bmb01='201511S2U000'
      

  5.   

    或者这样写
    SELECT a.bmb01, a.bmb02, a.bmb03, wmsys.wm_concat (b.bmt06) bmt06
      FROM ds01.bmb_file a, ds01.bmt_file b
     WHERE b.bmt01(+) = a.bmb01 AND b.bmt03(+) = a.bmb03
           AND a.bmb01 = '201511S2U000'
      

  6.   

    SQL Code
    select * from test