私は持っている
employees table(id,f_name,l_name,salary,dept_id,manager_id)
departments table(id,dept_name,manager_id)
dept_name
、そのmanager_id
、マネージャーl_name
、およびそれぞれのマネージャーの下で働いている従業員の数を単一のテーブルに表示したいと思います。
私は持っている
employees table(id,f_name,l_name,salary,dept_id,manager_id)
departments table(id,dept_name,manager_id)
dept_name
、そのmanager_id
、マネージャーl_name
、およびそれぞれのマネージャーの下で働いている従業員の数を単一のテーブルに表示したいと思います。
簡単なクエリでこれを行うことができますが、従業員テーブルの manager_id を削除し、従業員レコード ID を識別子として使用する必要があります。
Select dept.dept_name, dept.manager_id, (select e.l_name from employees as e where e.id = dept.manager_id), count(select em.id from employees as em where dept.id = em.dept_id) FROM departments as dept
これは機能するはずですが、使用している特定のデータベースを指定していません。質問を更新するか、どのデータベースを教えてください。うまくいかない場合は、そのデータベースを編集できます。
correlated subquery
カウントを取得するためにこれを達成できます。join を使用して選択できる残り。これはあなたを助けるかもしれません
SELECT D.dept_name,
D.manager_id,
E.l_name,
(SELECT COUNT(*)
FROM employees
WHERE manager_id=D.manager_id) AS numberOfEmployees
FROM departments D INNER JOIN employees E ON D.manager_id=E.id