OracleSQLメモ_LEAD

今回の心

お客様からのEDIデータにより売上計上するバッチを動かしています。お客様がセットしている注文単価(会社内から見ると販売単価)と社内の販売単価マスタが合致しているか否かを調査するためのORACLEのSQL文となります。これも極私的メモ

テーブル 単価マスタ

仕事で使っている単価マスタは数量によって価格が変わる場合を考慮している。
略したレイアウトは以下の通りで数量LOTのカラムは1列です。

テストとしてTEST_TOKTNには以下のデータを投入しました。

LEADを用いたクエリ

BETWEENで照合させたいためORACLEの分析関数LEADを使ってみます。

Part 11:分析関数:ランキング、LEAD/LAG、レポート | Oracle 日本
Part 11:分析関数:ランキング、LEAD/LAG、レポート

より

現在処理中の行の前(LEAD)または後(LAG)にある行に関するレポートを生成する

後の問合せでBETWEENが使えるようにLEADをつかって単価表のクエリを作成しました。実在しない最大の数999999999をMAXとしましたが、もう少しスマートな方法がありそうです。

SUULOT_2はLEADを使って作成したカラムです。ココが今回のミソ

 

テーブル ジャーナル(売上)

テストとしてTEST_URIKEには以下のデータを投入しました。

 

JNLとマスタの比較を行うクエリ

右端の判定が×はJNL値とマスタ値が違う数値となっています。

コメント