0

SQL Developer forOracle11gを使用しています。

一連の日付をループできるようにする必要があります。上または下の日付が=または<または>であるかどうかを確認してください。

次に、その=と同じ旅行番号を割り当てるか、新しい旅行番号を割り当ててから、新しい旅行を開始し、次の日付をもう一度チェックして、その=または<または>が現在の日付よりも小さいかどうかを確認します。

これを行うには、pl / sqlカーソルforループを使用する必要があると思います。私はそれを理解しようとしましたが、あまり意味がありません。

たとえば、最終結果を次のようにしたいと思います。

ROWID     DATE        TRIP
  1         1-Jan-12    1
  2         2-Jan-12    2
  3         2-Jan-12    2
  4         3-Jan-12    3
  5         4-Jan-12    4
  6         1-Jan-12    1
  7         4-Jan-12    4

よろしくお願いします。アレックス

4

1 に答える 1

0

ループする必要はまったくありません。必要なのは分析関数dense_rankだけです:

select t.*,
       dense_rank() over (order by startdate) as trip
from t
于 2012-08-27T15:54:45.127 に答える