Я работаю с таблицей, которая отслеживает все сделанные вызовы, и я пытаюсь сделать отчет, который показывает оба вызова, сделанные и полученные определенным UserID
. Проблема заключается в том, что вызовы могут выполняться как групповые вызовы, и эти вызовы имеют разные UserIDs
для тех, кто получает вызов. Когда вызов помещен, есть запись, сделанная с UserID
пользователя устройства, CallDirection
вызов, и имеет CallDirection
из Initiated
, тогда будет сделана запись для каждого из устройств, к которым выполняется вызов, каждый с UserID
пользователя принимающего устройства и CallDirection
Received
.
Единственное, что связывает запись вместе, это еще один столбец с названием CallID
. Все они имеют одинаковый идентификатор.
Поэтому я хочу, чтобы Query для всех записей вызовов с определенным UserID
и если CallDirection
Initiated
, тогда я также хочу получить все строки, которые имеют этот CallId
(который не будет иметь тот же UserID
который я фильтрую)
Я просто не могу понять, как это сделать, и очень признателен за любую помощь.
Основываясь на моем понимании проблемы, вы можете сделать самостоятельное объединение, в котором одна копия имеет запись с CallDirection
= Initiated
а другая копия - это ваша оригинальная таблица и присоединение к ней по CallID
.
SELECT A.RecordID, A.CallID, A.UserID, A.CallDirection
FROM CALL_HISTORY A
INNER JOIN
(SELECT RecordID, CallID, UserID, CallDirection FROM CALL_HISTORY WHERE CallDirection="Initiated" AND UserID=10680 ) I
ON A.CallID = I.CallID
UNION ALL
(SELECT RecordID, CallID, UserID, CallDirection FROM CALL_HISTORY WHERE CallDirection="Received" AND UserID=10680);
@Vashi Awesome! Это дает мне полную группу вызовов "Инициировано" этим пользователем, но теперь мне нужно это, чтобы также дать мне звонки, которые "Получены". Вот мой запрос сейчас:
SELECT A.RecordID, A.CallID, A.UserID, A.CallDirection
FROM CALL_HISTORY A
INNER JOIN (SELECT RecordID, CallID, UserID, CallDirection
FROM CALL_HISTORY
WHERE CallDirection="Initiated"
AND UserID=10680
) I
ON A.CallID = I.CallID;
UNION ALL
для добавленияReceived
записей.