2017-10-20 1 views
0

möchten die Last_names vom Employees der wie Last_name in der gleichen Abteilung arbeiten, um zu zeigen,Benutzer, die in derselben Abteilung arbeiten

Wie kann ich das tun?

SELECT LAST_NAME, DEPARTMENT_ID 
FROM EMPLOYEES 
WHERE DEPARTMENT_ID = DEPARTMENTID(&LAST_NAME) 

So habe ich es versucht. Vielleicht funktioniert es mit Joins, aber ich habe buchstäblich keine Ahnung ... Kann mir jemand helfen ??

Meine Tabellen:

  • empoyees (Emp_ID, LAST_NAME, DEPARTMENT_ID)
  • Abteilungen (DEPARTMENT_ID, ORT)

sollte so aussehen (exampl Nachname "King")

| LAST_NAME | DEPARTMENT_ID | 
| Mueller | 20   | 
| Bach  | 20   | 
+0

Fügen Sie einige Beispieltabellendaten und das erwartete Ergebnis - als formatierter Text (keine Bilder.) – jarlh

+0

versucht so gut wie möglich – Jensoo

Antwort

0

Haben Sie eine Unterabfrage, die die Abteilungs-ID (s) für die Mitarbeiter mit dem letzten zurückgibt Name. Tun Sie IN, um den Rest der Mitarbeiter von derselben Abteilung zu bekommen.

SELECT LAST_NAME, DEPARTMENT_ID 
FROM EMPLOYEES 
WHERE DEPARTMENT_ID IN (select DEPARTMENT_ID 
         FROM EMPLOYEES 
         WHERE LAST_NAME = &LAST_NAME) 

Je nachdem, welche dbms Sie verwenden, eine JOIN Version eine bessere Leistung haben kann:

SELECT e1.LAST_NAME, e1.DEPARTMENT_ID 
FROM EMPLOYEES e1 
JOIN (select DEPARTMENT_ID 
     FROM EMPLOYEES 
     WHERE LAST_NAME = &LAST_NAME) e2 
    ON e1.DEPARTMENT_ID = e2.DEPARTMENT_ID 
0

Ich habe 2 einfache Anführungszeichen (') und jetzt hat es funktioniert.

SELECT LAST_NAME, DEPARTMENT_ID 
FROM EMPLOYEES 
WHERE DEPARTMENT_ID IN (select DEPARTMENT_ID 
         FROM EMPLOYEES 
         WHERE LAST_NAME = '&LAST_NAME')