1

Empname、DepartmentNameなどの2つの列を持つテーブルがあり、1人の従業員が複数の部門で働く可能性があります。その逆も同様です。いくつかの部門の組み合わせに基づいて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である従業員は、行も返すということです。どうすればユニークな組み合わせだけを手に入れることができるか提案してください。

4

1 に答える 1

1

あなたは近かった - 使用:

  SELECT d.EmpName, COUNT(*) as Total 
    FROM Emp_Departments d
   WHERE d.DepartmentName IN ('Dept1', 'Dept2', 'Dept3') 
GROUP BY d.EmpName 
  HAVING COUNT(DISTINCT d.DepartmentName) = 3
于 2012-06-01T03:31:51.837 に答える