Когда я использую следующий запрос:
SELECT
AC.iJobID as JobID,
ROW_NUMBER()OVER (ORDER BY AC.iJobID) AS RowNumber,
(SELECT COUNT (*) FROM tbUS_ReferJob WHERE iJobId_FK = 202424 AND sReferredFrom = 'F' AND iUserId_FK = 9550) AS FaceBook_Applications
FROM tbUS_AffiliateJobCount AC,tbUS_ReferJob RJ
WHERE AC.iJobID = 202424 AND RJ.iJobId_FK = 202424
GROUP BY AC.iJobID
Это дает правильный результат.
JobID RowNumber FaceBook_Applications
202424 1 2
Но когда я использую запрос ниже
SELECT
AC.iJobID as JobID,
ROW_NUMBER()OVER (ORDER BY AC.iJobID) AS RowNumber,
SUM(CASE WHEN RJ.sReferredFrom = 'F' THEN 1 ELSE 0 END) AS FaceBook_Applications
FROM tbUS_AffiliateJobCount AC,tbUS_ReferJob RJ
WHERE AC.iJobID = 202424 AND RJ.iJobId_FK = 202424
GROUP BY AC.iJobID
Это дает неправильный результат
JobID RowNumber FaceBook_Applications
202424 1 12
Теперь мои вопросы
- В чем причина этого?
- Как я могу сделать это, используя
SUM()
функция для снижения стоимости?
Любое предложение будет полезно.
Спасибо за ваше время.
ОБНОВЛЕНИЕ
SELECT AC.iJobID as JobID,
ROW_NUMBER()OVER (ORDER BY AC.iJobID) AS RowNumber,
SUM(CASE WHEN (RJ.sReferredFrom = 'F' AND RJ.iJobId_FK = 202424 AND RJ.iUserId_FK = 9550) THEN 1 ELSE 0 END) AS FaceBook_Applications
FROM tbUS_AffiliateJobCount AC,tbUS_ReferJob RJ
WHERE AC.iJobID = 202424 AND RJ.iJobId_FK = 202424
GROUP BY AC.iJobID
Это дает:
JobID RowNumber FaceBook_Applications
202424 1 8
ОБНОВЛЕНИЕ 2
SELECT iJobID_FK, sReferredFrom FROM tbUS_ReferJob WHERE iUserID_FK=9550 AND iJobID_FK=202424 AND sReferredFrom='F'
Результат:
iJobID_FK sReferredFrom
202424 F
202424 F