2014-11-25 138 views
0

問題: HR部門需要一個查詢,提示用戶輸入姓氏 。該查詢然後將任何員工 的姓氏和僱用日期顯示在與他們提供的姓名(不包括該僱員)的僱員相同的部門中。 例如,如果用戶輸入Zlotkey,則查找所有使用Zlotkey(不包括Zlotkey)的 的員工。SQL-Oracle:解決基本問題的困難,第2部分

我設法做到這一點,但我不知道如何完成它。現在它顯示我所有員工後,我寫last_name不包括它。任何建議請如何繼續?

SELECT last_name, TO_CHAR(hire_date,'DD-MON-YYYY') AS "HIRE_DATE" 
FROM employees 
WHERE last_name <>ALL (SELECT '&last_name' 
         FROM employees) 

AND department_id IN (SELECT department_id 
          ???.... 

P.S:這個問題是從Oracle教程(Oracle數據庫11g:1(2009年),練習7,練習1的SQL基礎1誰已經做到了這一點:)人。

回答

1

這樣的事情?

SELECT last_name, TO_CHAR(hire_date,'DD-MON-YYYY') AS "HIRE_DATE" 
FROM employees a 
JOIN (Select department_id from employees where last_name = :surname) b on a.department_id = b.department_id 
and last_name <> :surname 

編輯 這種類型的解決方案唯一的問題是,如果有兩個人在不同的部門同姓,所以可能使用類似的員工號作爲過濾器可能是有用而不是姓。

+0

是的,我認爲這樣做可以做得很好,謝謝。現在我試圖瞭解如何工作:D – udarH3 2014-11-25 12:54:10

0
SELECT LAST_NAME, HIRE_DATE 
FROM EMPLOYEES 
WHERE DEPARTMENT_ID= (SELECT DEPARTMENT_ID 
FROM EMPLOYEES 
WHERE LAST_NAME LIKE '&NAME') 
AND LAST_NAME <> '&NAME'; 
+0

添加一些評論給你的答案。 – HDJEMAI 2017-04-03 03:23:42