【发布时间】:2012-06-01 03:24:23
【问题描述】:
我有一个包含 2 列的表,例如 Empname、DepartmentName,其中一名员工可能在多个部门工作,反之亦然。 我想编写一个查询以根据某些部门组合选择 EmpName。 例如。仅在 Dept1、Dept2 和 Dept3 下工作的员工(在这种情况下应该只选择仅在 3 个部门下工作的员工)
这是我尝试过的查询。
Select EmpName, Count(*) as Total from Emp_Departments where DepartmentName in ('Dept1', 'Dept2', 'Dept3') group by EmpName having Total=3
这里的问题是,任何在上述任何部门工作且总人数为 3 的员工,它也会返回他们的行。 请建议我如何才能获得唯一的组合。
【问题讨论】:
-
你的表的结构是什么?
EmpName是唯一的吗?EmpName,DepartmentName的组合也是唯一的吗? -
是的,EmpName 和 Department 的组合是唯一的
-
单独
EmpName怎么样?这是独一无二的吗? -
不,Empname 是重复的,因为一个 empname 可以与多个 depatnames 关联。
-
在这种情况下,您将无法实现您想要的。您将需要一个唯一的字段来区分两个同名的员工。
标签: mysql sql aggregate-functions