两个表的的数据如下
rate表
rate_no dime_no dime_value
R001      D001          1
R001      D002          05
R001      D002          03
R001      D003         5
R002      D001         2
R002      D004          O
R002      D003          4
R003      D001          2
R003      D002          06
R003      D003          6
tx表
tx_code   dime_no
2011       D001
2011       D002
2011       D003
4001       D001
4001       D004
4001       D003希望查询的结果是
tx_code    rate_no
2011       R001
2011       R003
4001       R002
这是我写的虽然查询出来了,但是太麻烦了,求教怎么使用简单的方法
select b.tx_code,a.rate_no from 
(select rate_no,wmsys.wm_concat(distinct dime_no) dime_list from rate  group by rate_no) a,
(select tx_code,wmsys.wm_concat(distinct dime_no) dime_list, from tx group by tx_code) b 
where a.dime_list=b.dime_list

解决方案 »

  1.   

    rate表中有rate_no可以对应多个dime_no,每个dime_no可以选择多个值
    tx表中有tx_code可以对应多个dime_no,
    现在我要查询出tx_code和rate_no的对应关系
    实际场景就是在设置费率的时候,可能有多种条件,现在每一个条件算是一个维度dime_no,条件的值是dime_value维度值,
    一种情况下的费用是一个费用编号rate_no,比如当客户类型是个人或对公、发起渠道是网银、客户级别白金级别的,。
    同时一个交易的交易码2011有多种费用规则rate_no,
    ate_no dime_no                   dime_value  dime_desc
     R001      D001(客户类型)          1            个人
     R001      D002(渠道)                 05           网银
     R001      D002 (渠道)                03           自助银行
     R001      D003 (客户级别)        5              白金级
     R002      D001                               2              对公
     R002      D004 (介质类型)         O             短信   
     R002      D003                                 4             黄金级
     R003      D001                               2                对公
     R003      D002                               06               手机
     R003      D003                               6                  钻石级
      

  2.   

    SELECT B.TX_CODE,A.RATE_NO
    FROM RATE A,TX B
    WHERE A.DIMO_NO = B.B.DIMO_NO
    GROUP BY B.TX_CODE,A.RATE_NO
      

  3.   

    没理解你的is  试一试在你缩写的中间加个union alla 试一试