Вашата заявка извършва външно свързване, докато се опитва да извърши преброяване. Ако B.UserId е посочен като NULL, тогава count(* ) също ще върне NULL. Можете да коригирате това, като изрично извършите преброяване на A с помощта на "count (A.*)" или като го обвиете в ISNULL().
select A.UserId, B.UserId, count(A.*)
from select tableA A
left outer join tableB B
on A.UserBNumber = B.Number
group by A.UserId, B.UserId
или
select A.UserId, B.UserId, isnull(count(*),0)
from select tableA A
left outer join tableB B
on A.UserBNumber = B.Number
group by A.UserId, B.UserId