2016-04-29 9 views
0

Ich möchte eine innere Verbindung zwischen einer Tabelle a und einer anderen Tabelle b, die 2 Spalten enthalten, und ich möchte die Schlüssel_service aus Tabelle a gleich dem Schlüssel Service-Element der Variablen key_service aus Tabelle b und auch gleich dem Element der Variablen parent_key_service aus Tabelle b. Ich löse dies, indem ich zwei innere Joins mache und eine Verbindung zwischen meinen Tabellen mache, aber ich möchte es direkt machen, ist das möglich? dankeInner Join von zwei Tabelle auf drei Variablen

proc sql; 
    create table ca_m_service as 
    select a.month_key, a.service_key, a.tot_revenue, a.TOT_REVENUE_DISCNT, a.euser_key, b.* 
    from fr_dme.M_service_rev_by_euser_f as a 
    inner join code_remise_ass as b 
    on a.service_key = b.service_key 
    inner join code_remise_ass as c 
    on a.service_key = c.parent_service_key 
    where a.month_key between 201504 and 201509; 
quit; 

Antwort

1

Sie können die logische AND-Anweisung in der Join-Klausel verwenden.

create table ca_m_service as 
select a.month_key 
    , a.service_key 
    , a.tot_revenue 
    , a.TOT_REVENUE_DISCNT 
    , a.euser_key 
    , b.* 
from fr_dme.M_service_rev_by_euser_f as a 
    inner join 
    code_remise_ass as b 
    on a.service_key = b.service_key 
    and a.service_key = b.parent_service_key 
where a.month_key between 201504 and 201509 ; 
+0

Vielen Dank! Ich werde es versuchen. Nur eine Sache suche ich ODER logisch :) –