필자가 작성한 쿼리가 각 조직이 아닌 페이지의 전체보기를 세는 이유는 무엇입니까? 문제는 19 및 8로 나오지만, 쿼리는 나머지 27 개의 페이지 뷰로 나옵니다. 나머지 쿼리는 제대로 작동합니다. 누구 한테 왜 그런 생각이 들었 니? 감사합니다 토마스열을 잘못 계산하는 중 SQL
SELECT orgID, orgName,
(SELECT COUNT (rvSessionKey)
FROM tblReport
LEFT OUTER JOIN tblReportView ON rptID = rv_rptID
WHERE rpt_orgID IN (1002,1047)
AND rvEmail NOT LIKE '%support%'
AND rpt_qtrID IN (1)) AS [Page View],
COUNT(DISTINCT rvSessionKey) AS [Views], COUNT(DISTINCT rsShareKey) AS [Users],
ISNULL(ROUND(AVG(CAST(pfRating AS FLOAT)), 1), 0) AS [Avg Page Rating]
FROM tblReport
LEFT OUTER JOIN tblReportView ON rptID = rv_rptID
INNER JOIN tblReportShare ON rs_rptID = rptID
LEFT OUTER JOIN tblPageFeedback ON pfEmail = rsEmail
INNER JOIN PMaster.dbo.tblOrganisation ON orgID = rpt_orgID
WHERE rvEmail NOT LIKE '%support%'
AND orgID IN (1002,1047)
AND rpt_qtrID IN (1)
AND rvPage NOT LIKE 'Arts'
GROUP BY orgID, orgName
ORDER BY orgName
이 내가 먼저했다 무엇을하지만 그래서 내가 훨씬 더 큰 번호를 내 곳 문에 보이지 않는다 76 32 :/ –
@ThomasJames Where 절을 살펴 보겠습니다. 문제는 조인으로 인해 rvSessionKey가있는 행이 카운트에서 중복되는 것입니다. 76과 32가 4 * 19와 4 * 8이라는 것을 알 수 있습니다. 이는 조인이 첫 번째 테이블의 한 행과 두 번째 테이블의 행을 결합하는 것을 의미합니다. 하위 쿼리가 필요할 수도 있습니다. 질문을 편집하여 열 이름을 완전히 한정하여 어떤 열이 어떤 표에서 왔는지 확인할 수 있습니까? 예 : 'SELECT tblReport.OrgID, tblReport.orgName' 등 – Tobsey