0
나는 다음과 같은 쿼리가의 SUM을 받고 총에 의해. 는 TSQL은 2 개의 별도 카운트
나는이 시도했다 그러나 나는 오류를 얻고 유지집계 또는 하위 쿼리가 포함 된 식에서는 집계 함수를 수행 할 수 없습니다.
이 작업을 수행해야하는 구체적인 방법이 있습니까?
나는 다음과 같은 쿼리가의 SUM을 받고 총에 의해. 는 TSQL은 2 개의 별도 카운트
나는이 시도했다 그러나 나는 오류를 얻고 유지집계 또는 하위 쿼리가 포함 된 식에서는 집계 함수를 수행 할 수 없습니다.
이 작업을 수행해야하는 구체적인 방법이 있습니까?
그룹화중인 쿼리에서 집계 값을 사용하려면 전체 집계 함수를 열로 처리하십시오. 즉, COUNT(N.[nomineeQID])
은 열입니다. 따라서 귀하의 경우에는 계산을 위해 2 개의 집계를 함께 추가하십시오. 우리가 이런 식으로 쿼리를 작성하는 경우, 그것은 "비싼"보일 수 있습니다 그런데
IF (@action = 'topDepartments')
BEGIN
SELECT TOP 50 E.[DepartmentDesc] AS department,
COUNT(N.[nomineeQID]) AS totalNominations,
COUNT(S.[subQID]) AS totalSubmissions,
COUNT(N.[nomineeQID])
+ COUNT(S.[subQID]) AS ALLSubmissions
FROM empTable AS E
LEFT OUTER JOIN
empowermentSubmissions AS S
ON E.[qid] = S.[subQID]
LEFT OUTER JOIN
empowermentSubmissions AS N
ON E.[qid] = N.[nomineeQID]
WHERE N.[statusID] = 3
AND N.[locationID] = @locale
GROUP BY E.[DepartmentDesc]
ORDER BY totalSubmissions DESC
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
END
는, 그러나 옵티마이 저는 일반적으로는 계산을 다시 사용할 수 있음을 인식하고, 그래서 정말 보일 수만큼 나쁘지 않다 .
완벽하게 작업했습니다. 감사합니다! – SBB