У меня ниже таблица.
+----------+--------+-------------------+-------------------+-------------------+-------------+
| src | dst | dstchannel | linkedid | uniqueid | disposition |
+----------+--------+-------------------+-------------------+-------------------+-------------+
| 98267859 | 820006 | SIP/8207-0002fbda | 1571884780.349482 | 1571884780.349482 | NO ANSWER |
| 98267859 | 820006 | SIP/8208-0002fbdb | 1571884780.349482 | 1571884780.349482 | NO ANSWER |
| 98267859 | 820006 | SIP/8209-0002fbdc | 1571884780.349482 | 1571884780.349482 | NO ANSWER |
| 98267859 | 820006 | SIP/8210-0002fbdd | 1571884780.349482 | 1571884780.349482 | ANSWERED |
| 31389779 | 820006 | SIP/8207-0002fbdf | 1571884804.349487 | 1571884804.349487 | NO ANSWER |
| 31389779 | 820006 | SIP/8208-0002fbe0 | 1571884804.349487 | 1571884804.349487 | NO ANSWER |
| 31389779 | 820006 | SIP/8209-0002fbe1 | 1571884804.349487 | 1571884804.349487 | NO ANSWER |
| 31389779 | 820006 | SIP/8210-0002fbe2 | 1571884804.349487 | 1571884804.349487 | ANSWERED |
| 93870557 | 820005 | SIP/8207-0002fbf8 | 1571885246.349518 | 1571885246.349518 | NO ANSWER |
| 93870557 | 820005 | SIP/8208-0002fbf9 | 1571885246.349518 | 1571885246.349518 | NO ANSWER |
| 93870557 | 820005 | SIP/8209-0002fbfa | 1571885246.349518 | 1571885246.349518 | NO ANSWER |
| 93870557 | 820005 | SIP/8210-0002fbfb | 1571885246.349518 | 1571885246.349518 | ANSWERED |
| 98174911 | 820006 | SIP/8207-0002fc03 | 1571885371.349528 | 1571885371.349528 | ANSWERED |
| 98174911 | 820006 | SIP/8208-0002fc04 | 1571885371.349528 | 1571885371.349528 | NO ANSWER |
| 98174911 | 820006 | SIP/8209-0002fc05 | 1571885371.349528 | 1571885371.349528 | NO ANSWER |
| 98174911 | 820006 | SIP/8210-0002fc06 | 1571885371.349528 | 1571885371.349528 | NO ANSWER |
| 96780172 | 820006 | SIP/8207-0002fc31 | 1571886738.349609 | 1571886738.349609 | NO ANSWER |
| 96780172 | 820006 | SIP/8208-0002fc32 | 1571886738.349609 | 1571886738.349609 | NO ANSWER |
| 96780172 | 820006 | SIP/8209-0002fc33 | 1571886738.349609 | 1571886738.349609 | NO ANSWER |
| 96780172 | 820006 | SIP/8210-0002fc34 | 1571886738.349609 | 1571886738.349609 | ANSWERED |
Здесь каждая запись состоит из 4 строк, я хочу сделать запрос для каждого столбца, чтобы выбрать запись, если она получена, иначе выберитеПервый ряд.
Ниже приведен мой реальный запрос к другим таблицам, к которым мне нужно подключиться при определенных условиях. Все это работает хорошо, за исключением выбора правильного канала DST, если есть ответ на звонок.
SELECT cdr.uniqueid,extension,
DATE_FORMAT(MAX(calldate),'%d-%m-%Y %H:%i:%s') AS calldate,
CASE WHEN src IN
(8207,8208,8209,8210,64566556,64566556,64566556,64566556,820006,820005,'any value here')
THEN cnum
ELSE src END AS caller_id_number,
CASE WHEN dst NOT IN (SELECT grpnum FROM asterisk.ringgroups)
THEN dst
ELSE
TRIM(REPLACE(SUBSTRING(dstchannel,1,LOCATE("-",dstchannel,LENGTH(dstchannel)-8)-1),"SIP/",""))
END AS destination,
TRIM(REPLACE(SUBSTRING(dstchannel,1,LOCATE("-",dstchannel,LENGTH(dstchannel)-8)-1),"SIP/","")) AS dst,
CASE WHEN GROUP_CONCAT(disposition,",") LIKE "%ANSWERED%" THEN "Answered" ELSE "Abandoned" END AS disposition,
MAX(billsec) AS billsec, (duration-billsec) AS ringtime, duration,
CASE WHEN recordingfile!='' THEN recordingfile ELSE "No Data" END AS Recording,
cnam AS CallerID FROM cdr LEFT
JOIN asterisk.users
ON cdr.dst=asterisk.users.extension OR
TRIM(REPLACE(SUBSTRING(cdr.dstchannel,1,LOCATE("-",cdr.dstchannel,LENGTH(dstchannel)-8)-1),"SIP/","")) = asterisk.users.extension
LEFT JOIN cel ON cel.linkedid = cdr.uniqueid
WHERE dst IN (8207,8208,8209,8210,64566556,64566556,64566556,64566556,820006,820005)
AND calldate BETWEEN '2019-10-24 00:00:00' AND '2019-10-25 23:59:59' AND disposition = 'Answered'
AND cdr.uniqueid = cel.linkedid GROUP BY cel.linkedid
И мои результаты, как показано ниже
+---------------------+--------------------------+--------------+----------+-----------+-----------+----------+--------------+-----------+
| DATE | Caller ID | FROM | TO | Direction | Ring TIME | Duration | Recording | STATUS |
+---------------------+--------------------------+--------------+----------+-----------+-----------+----------+--------------+-----------+
| 20-10-2019 10:24:47 | 96881508 | 96881508 | 8207 | Inbound | 0 | 150 | NO Recording | Answered |
| 20-10-2019 11:07:40 | 97164881 | 97164881 | 8207 | Inbound | 0 | 89 | NO Recording | Answered |
| 20-10-2019 11:31:55 | 97806791 | 97806791 | 8207 | Inbound | 0 | 38 | NO Recording | Answered |
| 20-10-2019 11:40:49 | 92706696 | 92706696 | 8207 | Inbound | 0 | 75 | NO Recording | Answered |
| 20-10-2019 11:49:23 | 8208 - Aramsa Sgd FD - 2 | 8208 | 92706696 | Outbound | 14 | 105 | Recording | Answered |
| 20-10-2019 11:53:19 | 8208 - Aramsa Sgd FD - 2 | 8208 | 92706696 | Outbound | 36 | 24 | Recording | Answered |
| 20-10-2019 12:16:50 | 8208 - Aramsa Sgd FD - 2 | 8208 | 81858355 | Outbound | 20 | 0 | Recording | Abandoned |
| 20-10-2019 12:19:48 | 91825573 | 91825573 | 8207 | Inbound | 0 | 27 | NO Recording | Answered |
| 20-10-2019 12:32:10 | 14159348690 | +14159348690 | 8207 | Inbound | 0 | 149 | NO Recording | Answered |
| 20-10-2019 12:50:07 | 8207 - Aramsa Sgd FD - 1 | 8207 | 81807285 | Outbound | 57 | 0 | Recording | Abandoned |
| 20-10-2019 13:14:51 | 8207 - Aramsa Sgd FD - 1 | 8207 | 96788908 | Outbound | 11 | 10 | Recording | Answered` |
+---------------------+--------------------------+--------------+----------+-----------+-----------+----------+--------------+-----------+