朱色
2021/05/23 (日) 16:42:20
db0eb@978e4
速度のほうはさっぱりわからないのですが、クエリくみくみするのは好きなので一例。
SELECT D.*, DateDiff("s", D.START, D.END) as DURATION
FROM ( SELECT s1.EVENT, s1.E_Time as START
, ( SELECT TOP 1 e1.E_Time
FROM 表1 e1
WHERE e1.EVENT = s1.EVENT
and e1.E_Time > s1.E_Time
and e1.E_Cond = "END" ) as END
FROM 表1 s1
WHERE s1.E_Cond="START"
) D
ORDER BY D.START, D.EVENT
考え方としては、STARTだけの抽出結果(Sテーブル)に対し、
「同じEVENT、より遅いTime、CondがEND」の条件で最初にHITする抽出結果(Eテーブル)を
くっつけるというものです。
通報 ...