SQL-Oracle:解决基本问题的困难,第2部分

时间:2014-11-25 12:30:18

标签: sql oracle

问题: 人力资源部门需要一个提示用户提供员工的查询 姓。然后查询显示任何员工的姓氏和雇用日期 与他们提供名称的员工(不包括该员工)在同一部门。 例如,如果用户输入Zlotkey,请查找所有使用的员工 Zlotkey(不包括Zlotkey)。

到目前为止我设法做到了这一点,但我不知道如何完成它。现在,它在我写完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 Database 11g:SQL Fundamentals 1 of 1(2009年),Practice 7,练习1适用于已经完成此操作的人:)。

2 个答案:

答案 0 :(得分: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

修改 这种解决方案的唯一问题是,如果在不同的部门中有两个姓氏相同的人,那么将雇员号码作为过滤器而不是姓氏使用可能会有用。

答案 1 :(得分: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';