У меня есть таблица записей сведений о звонке.В каждой строке есть UserId
и UserBNumber
.
У меня также есть таблица, в которой есть UserId
и Number
, поэтому, имея номер, я могу сказать, что такое ID пользователя.
Так, чтобы из каждой записи CDR я мог сказать, что является идентификатором того, кто звонит тому, кто принимает вызов.
Иногда пользователь звонит на номер, которого нет в моей базе данных пользователей (звонки вне сети)
Теперь я хотел бы получить запрос, который дает мне UserAId(caller), UserBId(receiver), count(*)
, чтобы я мог знать количество соединений между пользователями.
UserAId, UserBId, NumberOfConnections
Если номер, который принимает вызов, нев моей таблице пользователь А звонит кому-то за пределами сети.
Я хотел бы получить результаты:
UserAId, NULL, NumberOfConnectionsOutsideTheNetwork
вот мой запрос:
TableA: CDR Table
TableB: User -> Number table
select A.UserId, B.UserId, count(*)
from select tableA A
left outer join tableB B
on A.UserBNumber = B.Number
group by A.UserId, B.UserId
проблема в том,что я считаю (*) иногда возвращает NULL.
Что я делаю не так?