2014-11-25 141 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