原帖由 风铃中の鬼 于 2009-9-23 11:10 发表
写问题的时候突然蹦出来个工作..拖延了下时间..具体问题在上面3楼
我当初提供给你的语句没有问题!
测试如下!
SQL> select * from tab_temp;
TAB_ID PRO_ID NET_ID
---------- ---------- ----------
1 2 3
2 4 4
3 1 1
SQL>
SQL> select dic_type,
2 type_name,
3 dic_id,
4 dic_txt,
5 count(*) cnt
6 from dic_temp
7 group by dic_type, type_name, dic_id, dic_txt;
DIC_TYPE TYPE_NAME DIC_ID DIC_TXT CNT
------------------------------ ---------- ---------- ------------------------------ ----------
专业 1001 1 话音网 2
专业 1001 2 数据网 2
专业 1001 3 传送网 2
专业 1001 4 动力环境 2
专业 1001 5 网管 2
网络类型-话音网 1002 1 传统交换 2
网络类型-话音网 1002 2 软交换 2
网络类型-话音网 1002 3 BSC 2
网络类型-话音网 1002 4 智能网 2
网络类型-话音网 1002 5 STP 2
网络类型-话音网 1002 6 基站 2
网络类型-话音网 1002 7 覆盖延伸系统 2
网络类型-话音网 1002 8 OMC 2
网络类型-话音网 1002 9 IP承载网 2
网络类型-话音网 1002 10 城域网 2
网络类型-话音网 1002 11 CMNET 2
网络类型-话音网 1002 12 短信 2
网络类型-话音网 1002 13 GPRS 2
网络类型-话音网 1002 14 彩信 2
网络类型-话音网 1002 15 WAP 2
DIC_TYPE TYPE_NAME DIC_ID DIC_TXT CNT
------------------------------ ---------- ---------- ------------------------------ ----------
网络类型-话音网 1002 16 彩铃 2
网络类型-话音网 1002 17 MISC 2
网络类型-话音网 1002 18 WLAN 2
网络类型-话音网 1002 19 MDC 2
网络类型-话音网 1002 20 其他增值系统 2
网络类型-话音网 1002 21 OMC 2
网络类型-话音网 1002 22 一干传送网 2
网络类型-话音网 1002 23 二干传送网 2
网络类型-话音网 1002 24 同步网 2
网络类型-话音网 1002 25 本地骨干层 2
网络类型-话音网 1002 26 本地汇聚层 2
网络类型-话音网 1002 27 本地接入层 2
网络类型-话音网 1002 28 OMC 2
网络类型-话音网 1002 29 WNMS 2
网络类型-话音网 1002 30 IPNET 2
网络类型-话音网 1002 31 传输综合网管 2
网络类型-话音网 1002 32 动环监控系统 2
网络类型-话音网 1002 33 信令监测系统 2
网络类型-话音网 1002 34 业务拨测系统 2
网络类型-话音网 1002 35 EOMS 2
40 rows selected
SQL>
SQL> select tmp1.tab_id,
2 max(decode(tmp1.type_name, 1001, tmp2.dic_txt, null)) vendor_name,
3 max(decode(tmp1.type_name, 1002, tmp2.dic_txt, null)) professional_type
4 from (select a1.tab_id,
5 b1.type_name,
6 decode(b1.rn, 1, a1.pro_id, 2, net_id) id
7 from tab_temp a1,
8 (select 1001 type_name, 1 rn
9 from dual
10 union all
11 select 1002 type_name, 2 rn from dual) b1) tmp1,
12 dic_temp tmp2
13 where tmp1.type_name = tmp2.type_name
14 and tmp1.id = tmp2.dic_id
15 group by tmp1.tab_id;
TAB_ID VENDOR_NAME PROFESSIONAL_TYPE
---------- ------------------------------ ------------------------------
1 数据网 BSC
2 动力环境 智能网
3 话音网 传统交换
----------------------------------------------------------
你的语句改改即可! 另一个语句上面有人已经提供了!
具体如下:
SQL> with tmp as
2 (select distinct * from dic_temp)
3 select tab_temp.tab_id tab_id,
4 dic_temp.dic_txt professional_type,
5 dic_temp1.dic_txt net_name
6 from tmp dic_temp, tmp dic_temp1, tab_temp tab_temp
7 where dic_temp.dic_id = tab_temp.pro_id
8 and dic_temp.type_name = 1001
9 and dic_temp1.dic_id = tab_temp.net_id
10 and dic_temp1.type_name = 1002
11 ORDER BY TAB_ID;
TAB_ID PROFESSIONAL_TYPE NET_NAME
---------- ------------------------------ ------------------------------
1 数据网 BSC
2 动力环境 智能网
3 话音网 传统交换
[本帖最后由 bell6248 于 2009-9-23 12:51 编辑]