我正在尝试筛选此表,以显示直到"Connect"为止的所有内容。这看起来很容易,但我很难想出一个简单的方法来做到这一点。这只是一个ID。每个呼叫ID的"连接"可以在不同的位置。入站总是第一个。
ID Date Log Call ID
-----------------------------
1 12:00 PM Inbound 12345
2 12:00 PM Ring 12345
3 12:01 PM Answer 12345
4 12:04 PM Trans 12345
5 12:05 PM Connect 12345
6 12:06 PM Trans 12345
7 12:30 PM Term 12345
8 12:30 PM End 12345
查询:
SELECT *
FROM Calls
WHERE call_ID = /*Some Call_id*/
AND /*Log is from Inbound to Connect*/
期望输出:
ID Date Log Call ID
-------------------------------
1 12:00 PM Inbound 12345
2 12:00 PM Ring 12345
3 12:01 PM Answer 12345
4 12:04 PM Trans 12345
5 12:05 PM Connect 12345
您可以使用相关的子查询:
select c.*
from calls c
where c.id <= (select min(c2.id)
from calls c2
where c2.call_id = c.call_id and c2.log = 'Connect'
);
您可以为特定call_id
的外部查询添加额外的筛选器。