編集:申し訳ありません!私はMicrosoft SQL Serverを使用しています。明確にするためSQLクエリ - 論理エラーを修復する方法
、あなたがなどジョブのリストで「X」という名前の部署、ジョブの別のリストで「Y」という名前の部署、
を持つことができ、私も> = ALLの代わりに使用する必要があります必要に応じて2つ以上の値を返す必要があるため、TOP 1またはMAXを使用する必要があります(job1に20人の従業員があり、job2に20人の従業員があり、両者が最大値であれば、両方とも戻ります)。
私の質問では、私は最も一般的なjobTitleと、このjobTitleの下で働く従業員の数を見つけようとしています。これは、「Research and Development」部門の下にあります。私が書いたクエリは、必要なデータを返すための結合で構成されています。
私が抱えている問題はWHEREステートメントです。 「WHERE声明は、部署が「研究開発」でなければならないと言っているが、問題が最も多いのは、研究開発部門でなければならないということである。従業員は別の部署から来ているため、出力には列名のみが出力されます。
私は、研究開発部門の従業員が最も多い仕事を返すようにクエリをやり直したいと思います。
私はこれがおそらくかなり簡単だと知っています、私は騒ぎです:3助けてくれてありがとう!
SELECT JobTitle, COUNT(JobTitle) AS JobTitleCount, Department
FROM HumanResources.Employee AS EMP JOIN
HumanResources.EmployeeDepartmentHistory AS HIST
ON EMP.BusinessEntityID = HIST.BusinessEntityID JOIN
HumanResources.Department AS DEPT
ON HIST.DepartmentID = DEPT.DepartmentID
WHERE Department = 'Research and Development'
GROUP BY JobTitle, Department
HAVING COUNT(JobTitle) >= ALL (
SELECT COUNT(JobTitle) FROM HumanResources.Employee
GROUP BY JobTitle
)
ご使用のデータベースに質問にタグを付けてください。 –