Я пытаюсь объединить две таблицы с помощью ПОЛНОГО ВНЕШНЕГО СОЕДИНЕНИЯ, но не получаю того, чего ожидал, потому что отсутствует строка.
Я пытаюсь объединить обе таблицы в 3 разных столбца.
Таблица А:
CallId ASId DateTime CallStatus DurationSeconds
21280070 NULL 17/07/2019 in_queue 1
21280070 2099726 17/07/2019 agent_dialing 3
21280070 2099726 17/07/2019 agent_ringing 3
21280070 2099726 17/07/2019 speaking_agent 95
21280070 NULL 17/07/2019 in_queue 1
21280070 2098692 17/07/2019 agent_dialing 1
21280070 2098692 17/07/2019 agent_ringing 6
21280070 2098692 17/07/2019 speaking_agent 10
Таблица B:
B.ASId B.CallId B.CallDetails B.DateTime B.Duration
2099726 21280070 dialing 17:21:41 3
2099726 21280070 ringing 17:21:44 3
2099726 21280070 incoming_call_in_conversation 17:23:19 95
2098692 21280070 dialing 17:23:21 1
2098692 21280070 ringing 17:23:27 6
2098692 21280070 incoming_call_in_conversation 17:23:37 10
2098692 21280070 wrapup 17:23:57 20
Я хочу получить что-то вроде этого:
A.CallId A.ASId A.DateTime A.CallStatus A.DurationSeconds B.ASId B.CallId B.CallDetails B.DateTime B.Duration
21280070 NULL 17:21:38 in_queue 1 NULL NULL NULL NULL NULL
21280070 2099726 17:21:41 agent_dialing 3 2099726 21280070 dialing 17:21:41 3
21280070 2099726 17:21:44 agent_ringing 3 2099726 21280070 ringing 17:21:44 3
21280070 2099726 17:23:19 speaking_agent 95 2099726 21280070 incoming_call 17:23:19 95
21280070 NULL 17:23:20 in_queue 1 NULL NULL NULL NULL NULL
21280070 2098692 17:23:21 agent_dialing 1 2098692 21280070 dialing 17:23:21 1
21280070 2098692 17:23:27 agent_ringing 6 2098692 21280070 ringing 17:23:27 6
21280070 2098692 17:23:37 speaking_agent 10 2098692 21280070 incoming_call 17:23:37 10
NULL NULL NULL NULL NULL 2098692 21280070 wrapup 17:23:57 20
Я пробовал следующий код:
SELECT *
FROM table a
FULL OUTER JOIN table b
ON a.CallId = b.CallId AND a.ASId = b.ASId AND a.DateTime = b.DateTime
WHERE a.CallId = 21280070
ORDER BY a.DateTime
И я получаю на одну строку меньше, чем ожидал, последняя с завершением:
A.CallId A.ASId A.DateTime A.CallStatus A.DurationSeconds B.ASId B.CallId B.CallDetails B.DateTime B.Duration
21280070 NULL 17:21:38 in_queue 1 NULL NULL NULL NULL NULL
21280070 2099726 17:21:41 agent_dialing 3 2099726 21280070 dialing 17:21:41 3
21280070 2099726 17:21:44 agent_ringing 3 2099726 21280070 ringing 17:21:44 3
21280070 2099726 17:23:19 speaking_agent 95 2099726 21280070 incoming_call 17:23:19 95
21280070 NULL 17:23:20 in_queue 1 NULL NULL NULL NULL NULL
21280070 2098692 17:23:21 agent_dialing 1 2098692 21280070 dialing 17:23:21 1
21280070 2098692 17:23:27 agent_ringing 6 2098692 21280070 ringing 17:23:27 6
21280070 2098692 17:23:37 speaking_agent 10 2098692 21280070 incoming_call 17:23:37 10
Кто-нибудь знает, почему это происходит? Я не могу понять, почему не отображается последняя строка.
Спасибо заранее.
С уважением!