Microsoft Access 掲示板

イベント型データの並び替え / 3

24 コメント
views
4 フォロー
3
朱色 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テーブル)を
くっつけるというものです。

通報 ...