返された行のリストの前の行に基づいてOracleにSQLクエリを記述することに興味があります。基本的に私は2460のID番号を持つすべての行をデータベースに照会する必要がありますが、前の行(日付順)はID#2463です。これを行う方法はありますか?Oracle SQL:前の行の列の値に基づいて選択する
申し訳ありませんこれは混乱しているか愚かな質問ですが、私は非常に新しいものであり、このようなことはあまりよくありません。私は明確にする必要があるものを明確にすることをうれしく思うでしょう。
ありがとうございます!
編集:
ここで私は私が望んだ結果対取得していた結果のスクリーンショットと一緒にゴードンの回答に基づいて実行しているクエリです。
select *
from (select activitytranledger.*, lag(reasontype) over (order by trandate) as prev_reason from activitytranledger) activitytranledger
where trandate between to_date('02/7/2017','MM/DD/YYYY')
and to_date('02/8/2017','MM/DD/YYYY')
and reasontype = 2460
and prev_reason = 2463
order by trandate
;
私は場所#をとり、それを特定の日に照会します。
"Transid"を使用すると、最初のクエリによって出力された特定の行を見つけることができます。しかし、それは私に望ましい結果を与えているようではありません。
Current results(2460年の「Reasontype」と直接行の上の行は、2463年の理由の種類を持っているかに注目してください)(私がハイライトされた行は、私が指摘してきた欄に2463を持っている必要があります)
編集2:これは、あなたの質問の一つの解釈である2463年と2460
あなたの質問を編集し、サンプルデータと希望する結果を提供してください。 –