Ich habe zwei Tabellen, emp
und location
. Ich muss die Datensätze für alle übereinstimmenden EIDs der Emp-Tabelle basierend auf dem Standorttyp abrufen.Case-Anweisung mit mehreren Joins
Wenn der Standorttyp = 2 ist, müssen wir die zugehörige Stadt abrufen.
Wenn wir nicht Typ = 2 Datensatz haben, müssen wir Typ = 1 assoziierte Stadt für die passende eid abrufen.
Mein Fall Anweisung funktioniert gut, bis es zwei Datensätze für die eid sowohl Typ 1 und Typ 2. Aber ich brauche nur Typ 2 in diesem Fall holen
select case when a.type=2 then a.city
When a.type=1 then a.city
Else '0' End As City
From location a
Join emp r
On a.eid=r.eid
emp table
eid ename
1 james
2 mark
3 kristie
4 john
5 allen
location table
city eid type
athens 1 2
melbourne 2 1
london 2 2
newyork 3 1
output:
eid ename city type
1 james athens 2
2 mark london 2
3 kristie newyork 1
Fügen Sie einige Beispieltabellendaten und das erwartete Ergebnis hinzu - alles als formatierter Text. – jarlh
Hier ist ein großartiger Ort um anzufangen. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –
Verwenden Sie 'max (a.type)' mit der benötigten Gruppe von für Deine Wahl? und 'wo a.type in (1,2)' – xQbert