0
我有一個奇怪的情況,並不太確定如何接近它。TSQL多個計數使用不同JOIN的相同表
我有兩張表:
表A是提交
id
submitterQID
nomineeQID
story
表B是員工
QID
Name
Department
我試圖獲得由部門作爲分組提交總數以及提名總數。
這是我的存儲過程是什麼樣子:
BEGIN
SELECT TOP 50 count(A.[nomineeQID]) AS totalNominations,
count(A.[subQID]) AS totalSubmissions,
B.[DepartmentDesc] AS department
FROM empowermentSubmissions AS A
JOIN empTable AS B
ON B.[qid] = A.[nomineeQID]
WHERE A.[statusID] = 3
AND A.[locationID] = @locale
GROUP BY B.[Department]
ORDER BY totalNominations DESC
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
END
此問題與此的是,連接是由nomineeQID
僅連接,而不是subQID
爲好。
我的最終結果,我在找的是:
署客戶服務有25份意見書和90項提名
下令這兩個方面的總和......
我想只是JOIN
再次在subQID
,但被告知我不能加入同一張桌子兩次。
有沒有更簡單的方法來實現這個目標?
的一個大問題,我已經是這個性能。看起來它正在瀏覽整個員工表,然後當它在提交表中發現了它的東西時。 empTable包含超過10K條記錄,所以我想知道這是否會成爲問題。當我在桌子上運行代碼時,它試圖用數據返回每個員工。 – SBB 2014-09-02 15:19:18
啊,我錯過了這個部門。它將不得不重複員工記錄到他們的部門進行分組,並獲得提名/提交數量,但是我對此做了些混亂。看我的編輯。 – 2014-09-02 15:29:42
至於性能,如果empowermentSubmissions.nomineeQID和empowermentSubmissions.locationID在索引中配對,並且empowermentSubmissions.submitterQID和empowermentSubmissions.locationID在索引中配對,則應該非常快速。 10K記錄不應該是一個問題。 – 2014-09-02 15:39:50