У меня есть этот запрос:
SELECT Q_ID,
Q_DESC,
COUNT(Q_ID)
FROM #tmp_rep
LEFT OUTER JOIN po_Questions po
ON Q_ID = Certificate AND FUNCS = 1
AND LEN(LTRIM(RTRIM(po.UserName))) > 0
AND LEN(LTRIM(RTRIM(po.UserNumber))) > 0
GROUP BY
Q_ID,
Q_DESC
ORDER BY
Q_ID
таблица #tmp_rep имеет 2 столбца (Q_ID, Q_Desc) и 4 строки. И таблица po_Questions имеет 10, которые используют 3 кода Q_ID вСертификат столбца строк.Если я выполню этот запрос, все будет в порядке, и для Q-ID = 4 я получу 0 для подсчета, но если я напишу этот запрос следующим образом:
SELECT Q_ID,
Q_DESC,
COUNT(Q_ID)
FROM #tmp_rep
LEFT OUTER JOIN po_Questions po
ON Q_ID = Certificate
WHERE FUNCS = 1
AND LEN(LTRIM(RTRIM(po.UserName))) > 0
AND LEN(LTRIM(RTRIM(po.UserNumber))) > 0
GROUP BY
Q_ID,
Q_DESC
ORDER BY
Q_ID
, тогда я получу только 3 строки в результате иQ_ID = 4 не принадлежит результату. Почему SQL Server имеет такое поведение?
спасибо