Nil*_*are 5 sql sql-server sql-server-2008 sql-server-2008-r2
我有以下表格结构也提到我的预期输出请帮我查询,因为我不太了解SQL查询
表1:类别
Name CatId
A 1
B 2
C 3
Run Code Online (Sandbox Code Playgroud)
表2:Emp详细信息
FName Id Dob CatId
Pratik 1 1958-04-06 2
Praveen 3 1972-05-12 1
Nilesh 2 1990-12-12 2
Run Code Online (Sandbox Code Playgroud)
到目前为止,我试图获得所有结果:
SELECT A.Code,A.EmpName,A.DOB,B.cname
FROM EMPMASTER A
JOIN CATMASTER B ON A.cCode = B.ccode AND A.Compcode = B.CompCode
WHERE A.compcode = 'C0001' AND month(A.DOB) >= 1
AND MONTH(A.DOB) <= 12 AND A.termflag='L'
ORDER BY A.DOB
Run Code Online (Sandbox Code Playgroud)
但我的问题是,我还希望显示摘要结果
预期摘要输出:
Grouping No Of Employees
A 1
B 2
C 0
Run Code Online (Sandbox Code Playgroud)
我想你可以使用LEFT JOIN,GROUP BY并且COUNT如下:
SELECT [Grouping] = c.Name,
[No Of Employees] = COUNT(e.ID)
FROM Category AS c
LEFT JOIN EmpDetails AS e
ON e.CatId = c.CatId
GROUP BY c.Name;
Run Code Online (Sandbox Code Playgroud)