複雑なSQLはパフォーマンスも著しく劣るしメンテも大変だぞ
デバッグもしにくいし。

あと大量のデータ(例えば1000万件のデータ)処理中に障害がおこったらどうするんだ。
もう一回最初からリトライするのか。

COBOLというか通常のバッチなら100件コミットとかを駆使して、
障害がおこっても止めずに「エラーデータ」と「正常データ」を切り分けて処理を継続
あとでパッチをあてたりと、色々と融通を利かす余地をつくる