Вы можете использовать левое внешнее объединение с условиями фильтра, группировать по идентификатору пользователя, чтобы не получать дубликаты, добавить значение 1 для попаданий и использовать объединение, чтобы установить 0 для отсутствия попаданий.
Пример кода, который показывает, что я имею в виду, используя область и страну в качестве условия фильтра.
declare @U table (UserID int, Name varchar(50), StaffNo char(3), department char(4))
declare @C table (CountryID int, UserID int)
declare @A table (AreaID int, UserID int)
insert into @U values (1, 'KK', '111', 'dep1')
insert into @U values (2, 'NN', '222', 'dep2')
insert into @U values (3, 'DD', '333', 'dep3')
insert into @C values(1, 1)
insert into @C values(2, 1)
insert into @C values(3, 2)
insert into @C values(3, 3)
insert into @A values(1, 1)
insert into @A values(2, 1)
insert into @A values(3, 2)
select
U.UserID,
U.Name,
U.StaffNo,
U.department,
coalesce(C.Point, 0)+coalesce(A.Point,0) as Points
from @U as U
left outer join
(select UserID, 1 as Point
from @C
-- where ...?
group by UserID) as C
on U.UserID = C.UserID
left outer join
(select UserID, 1 as Point
from @A
-- where ...?
group by UserID) as A
on U.UserID = A.UserID