【问题标题】:SQlite Issue with Nested Queries嵌套查询的 SQlite 问题
【发布时间】:2015-08-05 06:02:00
【问题描述】:

大家好,我一直在努力解决这个问题,但我无法解决它。任何人都可以帮我解决这个问题吗?我很困惑,有人可以帮助我如何修复代码吗?抱歉,我无法上传图片。

SELECT Employee.EmpName, Employee.Age

FROM Employee

WHERE Employee.Age < (SELECT COUNT(Employee.EmployeeID)

FROM Employee, Department

WHERE Department.ManagerID = Employee.EmployeeID 

GROUP BY Employee.EmployeeID

HAVING COUNT(Employee.EmployeeID) >= 2) 

//(问题)找到管理多个部门的最年轻的经理。查询返回经理的姓名和年龄。

架构

Employee(EmployeeID:Integer, EmpName: String, Age: Integer, Salary: Real)
Department(DeptID: Integer, DeptName:String, Budget: Real, ManagerID: Integer)
Works(EmployeeID:Integer, DeptID: Integer, Percent_Time: Integer)

【问题讨论】:

    标签: mysql sql-server sqlite


    【解决方案1】:

    试试这个

    SELECT e2.EmpName, e2.Age
    FROM Employee e2 
    JOIN Works w2 USING (EmployeeID)
    JOIN (SELECT w.DeptID, MIN(e.Age) AS Youngest
          FROM Works w 
          INNER JOIN Employee e USING (EmployeeID)
          GROUP BY w.DeptID) sq
      ON w2.DeptID = sq.DeptID and e2.Age = sq.Youngest
    

    【讨论】:

    • 是的,它确实有效,但它没有返回经理姓名,它返回随机的 EmployeeName
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多