【问题标题】:My SQL query is not working [duplicate]我的 SQL 查询不工作 [重复]
【发布时间】:2012-02-11 20:39:03
【问题描述】:

可能重复:
Is there a way to make this SQL more efficient?

考虑下表:

  • department:

    deptid (type: INT)
    deptname (type: TEXT)
    hours (type: INT)
    active (type: BIT)
    
  • employee:

    empid (type: INT)
    empname (type: TEXT)
    deptid (type: INT)
    designation (type: TEXT)
    salary (type: INT)
    

编写查询以返回属于员工人数为 4 人或更多的部门的员工的列 empnamedeptname。记录应按empname 的字母顺序返回。

我的解决方案如下。

SELECT e.empname,d.deptname
FROM employee e,department d
WHERE e.deptid=d.deptid
      AND d.deptid
         IN
(
SELECT deptid
FROM employee
GROUP BY deptid
HAVING COUNT(*)>=4
)
ORDER BY e.empname;

【问题讨论】:

  • 这可能是功课。我在this link 找到了完全相同的问题。
  • @Venk 你真的应该看看我提供的链接。这可能会有所帮助。

标签: sql oracle


【解决方案1】:

您的问题的答案可以在this link找到。

SELECT employee.empname, department.deptname
FROM employee
INNER JOIN department ON employee.deptid = department.deptid
WHERE employee.deptid IN 
(
  SELECT employee.deptid
  FROM employee
  GROUP BY employee.deptid
  HAVING COUNT(employee.deptid) >= 4
)
ORDER BY employee.empname ASC;

编辑:如果您希望我解释此解决方案中的任何内容,请随时提出。 :)

【讨论】:

  • @Venk 只是一个后续问题;这对您有帮助还是不是您要寻找的答案?
猜你喜欢
  • 1970-01-01
  • 2011-09-23
  • 2010-10-16
  • 1970-01-01
  • 2021-02-26
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多