我有一张表,我试图从2个左连接的相同数据中获得2个不同的计数。TSQL加入多个表的表格
无论出于何种原因,它是复制数据并提供不正确的结果,我不知道为什么。
这是我迄今为止查询我本以为这是工作:
DECLARE @locale INT = '14'
SELECT TOP 50
E.[DepartmentDesc] AS department,
COUNT(N.[nomineeQID]) AS totalNominations,
COUNT(S.[subQID]) AS totalSubmissions,
COUNT(N.[nomineeQID]) + COUNT(S.[subQID]) AS total
FROM
employees AS E
LEFT JOIN
submissions AS S ON E.[qid] = S.[subQID] AND S.[statusID] = 3
AND S.[locationID] = @locale
LEFT JOIN
submissions AS N ON E.[qid] = N.[nomineeQID] AND N.[statusID] = 3
AND N.[locationID] = @locale
GROUP BY
E.[DepartmentDesc]
ORDER BY
totalNominations DESC
下面是数据的SQL小提琴:http://sqlfiddle.com/#!3/4e6b5/1
结果应该是下面的,但它是提供偏斜的数字:
- 总提名应该是3
- 总提交应该是2
- 总计应为5
我有一种感觉,它的接近,但数学只是不配合!
任何想法?
检查我的答案;)我想没关系 – 2014-09-02 14:29:07
我已经更新了我的答案以削减0/0行,显示sqlfiddle为o – 2014-09-02 14:35:52
我再次更新了有关按部门分类的答案。也显示sqlfiddle;) – 2014-09-02 14:45:19