2016-04-15 8 views
-1

mich auf Ihre Eingabe Bitte teilen Sie unterRechts mit group by-Klausel in oracle verbinden

Ich habe zwei Daten-Set in Oracle 11g

1 gesetzt:

empid-Qtr-salary 
1-Q3FY16-2000 
1-Q2FY16-1000 
2-Q3FY16-2000 
2-Q2FY16-3000 
2-Q1FY16-4000 
2-Q4FY15-5000 
3-Q2FY16-7000 
3-Q1FY16-8000 
enter code here 

2 gesetzt

id-qtr 
1-Q3FY16 
2-Q2FY16 
3-Q1FY16 
4-Q4FY15 

ERWARTETER AUSGANG IST

enter code here 
1-Q3FY16-2000 
1-Q2FY16-1000 
1-Q1FY16-NULL 
1-Q4FY15-NULL 
2-Q3FY16-2000 
2-Q2FY16-3000 
2-Q1FY16-4000 
2-Q4FY15-5000 
3-Q3FY16-NULL 
3-Q2FY16-3000 
3-Q1FY16-7000 
3-Q4FY15-NULL 

mit rechts aus Join versucht. Kein Glück.

select s1.empid,s2.qtr,s1.salary from set1 s1 

rechts set2 s2 auf s2.qtr = s1.qtr Gruppe von s1.empid, s2.qtr, s1.salary

+0

Was ist das mit "Gruppieren nach Klausel" in Ihrem Titel? Was hat das mit irgendetwas zu tun? – mathguy

+0

Was wissen Sie auch über die elementarste SQL-Select-Anweisung? WAS wählst du bei deinem Versuch aus? – mathguy

+0

wählen s1.empid, s2.qtr, s1.salary von set1 s1 rechts beitreten set2 s2 auf s2.qtr = s1.qtr gruppe von s1.empid, s2.qtr, s1.salary – user2867900

Antwort

0

Die rechte äußere Verknüpfung Sie wollen, ist kommen mit dem Kreuz des JOIN Liste von Empid's (die in einer eigenen Tabelle sein sollte) und die Liste der Quartale. Etwas wie folgt aus:

select s1.empid, s1.qtr, s1.salary 
from s1 right other join 
((select distinct empid from s1) s3 cross join s2) t 
on s1.empid = t.empid and s1.qtr = t.qtr 

für jedes Paar (empid, qtr) Sie wollen das Gehalt holen, und wenn es kein Gehalt, möchten Sie NULL statt - das ist, was die rechte äußere Verknüpfung der Fall ist. Der Kreuz-Join erzeugt die Menge aller möglichen Kombinationen von Empid und Qtr.

+0

Vielen Dank @mathguy. Vielen Dank. Schließlich habe ich es basierend auf Ihrer vorgeschlagenen Abfrage – user2867900

+0

Dann bitte markieren Sie die Frage als beantwortet, damit es nicht auf der unbeantworteten Fragen Liste angezeigt wird. Prost, Mathguy – mathguy

Verwandte Themen