2017-10-20 11 views
0

besoin de montrer l'Last_names du Employees qui travaillent dans le même département comme Last_nameLes utilisateurs qui travaillent dans un même département

Comment puis-je faire cela?

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

Voilà comment je l'ai essayé. Peut-être que cela fonctionne avec les jointures mais je n'ai littéralement aucune idée ... Quelqu'un peut-il aider ??

Mes tableaux:

  • empoyees (emp_id, LAST_NAME, DEPARTMENT_ID)
  • Départements (DEPARTMENT_ID, LIEU)

devrait ressembler (exampl Nom "King")

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

Ajoutez des exemples de données de tableaux et le résultat attendu - comme du texte formaté (et non des images) – jarlh

+0

essayé le mieux possible – Jensoo

Répondre

0

Avoir une sous-requête qui retourne les ID de service pour le (s) employé (s) avec cette dernière prénom. Faites IN pour obtenir le reste des employés du même département (s).

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

Selon que vous utilisez DBM, une version JOIN peut avoir de meilleures performances:

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

I ajouté 2 guillemets simples (') et maintenant cela a fonctionné.

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