2016-04-14 35 views
0

所有 我转换我的两个查询到表 表1如下:连接两个预言结果为单输出

SITE_ID LEGACY_PACKAGE NEW_PACKAGE_MOVEMENT 
1 CDTPMR CDTPMRMX 
1 CDTPMRNV CDTPMRMX 
1 CDTPMRU CDTPMRUMX 
1 CDTPMRUNV CDTPMRUMX 
1 CONN100 CDTPMRMX 
1 CONN100NVM CDTPMRMX 
1 CONNULD CONNULD 
1 CONNULDNVM CONNULD 
1 ESSENTIALS SIM3PKG 
1 ESSENTLNVM CDTESS 
1 PHNE PREFR CDTPMRMX 

和如下表2:

SITE_ID PACKAGE_CODE SERVICE_RATE 
1 CDTESSU 0 
1 CDTESSU 0 
1 CDTESSU 0 
1 CDTESSU 7.93 
1 CDTESSU 12.99 
1 CDTESSU -7.93 
1 CDTESSU 8.99 
1 CDTESSU 12.99 
1 CDTESSU 0 
1 CDTESSU 8.99 
1 CDTESSU -5.99 
1 CDTESSU 15.99 
1 CDTESSU 0 
1 CDTESSU 0 
1 CDTESSU -5.99 

我的新的输出应该是这样的

SITE_ID LEGACY_PACKAGE service_rate1 NEW_PACKAGE_MOVEMENT service_rate2 

通过比较legacy_package(table1)和package_c ODE(表2),以service_rate1

by comparing NEW_PACKAGE_MOVEMENT (table1) with package_code (table2) to service_rate2 

I am trying different ways in oracle sql, but finding it harder. 
is there any clue how to achieve this? 
+0

这是你的连接条件LEGACY_PACKAGE = PACKAGE_CODE? –

+0

是得到service_rate1。我需要比较new_package_movement和package_code到service_rate2。 – user1468031

+0

什么是service_rate1和service_rate2之间的区别 – cableload

回答

0

尝试是这样的..(未经测试)

select 
    t1.site_id,t1.legacy_package, 
    (case when t1.legacy_package=t2.package_code 
      then t2.service_rate else null end) as service_rate1, 
    t1.new_package_movement, 
    (case when t1.new_package_movement=t2.package_code 
    then t2.service_rate else null end) as service_rate2 
    from table1 t1 join 
    table t2 where t1.site_id=t2.site_id and 
    ((t1.legacy_package=t2.package_code) or (t2.new_package_movement=t2.package_code)) 
+0

我可以尝试内部查询获取第二个服务费率1,如 – user1468031

+0

SELECT DISTINCT T1.site_id, T1.LEGACY_PACKAGE AS “从ICOMS包CD”, T2.SERVICE_RATE, T1.NEW_PACKAGE_MOVEMENT AS “要ICOMS包CD”, (SELECT T2.SERVICE_RATE AS SERVICE_RATE_NEW FROM表1 T1 INNER JOIN table2的T2 ON T1.site_id = T2.SITE_ID AND T1.NEW_PACKAGE_MOVEMENT = T2.PACKAGE_CODE ) FROM table1 T1 INNER JOIN table2 T2 ON T1.site_id = T2.SITE_ID AND T1.LEGACY_PACKAGE = T2.PACKAGE_CODE ORDER BY T1.site_id,T1.LEGACY_PACKAGE – user1468031

+0

你试过我的版本..这不工作? – cableload