0

次のようなログインテーブルがあります。

テーブルログ

date      |  time   | event      | program   | ordendate
20130722    070000    executing    program1    20130722
20130722    070040    end ok       program1    20130722
20130722    070100    executing    program1    20130722
20130722    070140    end ok       program1    20130722

質問があります

 select a.date || a.time as datetimeStart, 
        b.date || b.time as datetimeStop, 
        a.program, a.ordendate  
   from tablelog a, 
        tablelog b
  where a.date || a.time < b.date || b.time
    and a.event = "executing"
    and b.event = "end ok"

これは3回の実行を返しますが、2回しかありません...どうすればこのクエリを修正できますか???

ありがとうございました!!

4

3 に答える 3

1

lag()実行しようとしているクエリは、分析関数またはを使用して行うのが最適ですlead()

select dateTimeStart, dateTimeStop, program, orderdate
from (select tl.date || tl.time as datetimeStart,
             lead(tl.date || tl.time) over (partition by program order by date, time) as dateTimeStop,
             tl.*
      from tablelog tl
     ) tl
where tl.event = 'Executing';
于 2013-07-22T16:06:33.007 に答える