【问题标题】:SQL-Oracle: Difficulties in resolving basic problems, part2SQL-Oracle:解决基本问题的困难,第 2 部分
【发布时间】:2017-04-03 11:10:11
【问题描述】:

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

到目前为止,我设法做到了,但我不知道如何完成它。现在,它显示了我写下姓氏后的所有员工,不包括它。请问有什么建议可以继续吗?

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 (year 2009), Practice 7 , exercise 1 for people who have done this:)。

【问题讨论】:

    标签: sql oracle


    【解决方案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
    

    编辑 这种解决方案的唯一问题是,如果在不同部门有两个同姓的人,那么使用员工编号之类的东西作为过滤器而不是姓氏可能会很有用。

    【讨论】:

    • 是的,我认为这项工作做得很好,谢谢。现在我试图了解究竟是如何工作的:D
    【解决方案2】:
    SELECT  LAST_NAME, HIRE_DATE 
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID= (SELECT DEPARTMENT_ID 
    FROM EMPLOYEES
    WHERE LAST_NAME LIKE '&NAME')
    AND LAST_NAME <> '&NAME';
    

    【讨论】:

    • 在您的答案中添加一些 cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多