問題タブ [cds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
greatest-n-per-group - 相関サブクエリを結合に置き換えます
次の ABAP OpenSQL スニペット (はるかに大きなステートメントの where 句内) を同等の結合に置き換えたいと思います。
私の動機: ABAP CDS ビューへのクエリの移行 (基本的にプレーンな SQL と比較して、表現力がいくらか低下しています)。残念ながら、相関サブクエリと EXISTS ステートメントはサポートされていません。
私は少しグーグルで検索し、可能な解決策(最後の投稿)を見つけましたhttps://archive.sap.com/discussions/thread/3824523
ただし、提案は
- MAX(値)の選択
- 最初の CDS ビューへの内部結合を使用するシナリオ
私の場合はうまくいきません。
- tf.bis (および tf.ab) は、結合 (新しいビュー) の rhs を正しい時間枠に制限するために、新しいビューの選択リストに含まれている必要があります。
- 残念ながら、同じ tf.tarifart を持つ複数の (重複しない) サブ時間フレーム ([tf.ab, tf.bis] に含まれる) が存在する可能性があります。これらは一緒にグループ化できないため、rhs に複数の行が作成されます。
元のクエリには問題はありません (結合なし -> デカルト積なし)。
次のフィドル(実際の例)が少し解決することを願っています:http://sqlfiddle.com/#!9/8d1f48/3
これらの制約を考えると、同等の結合は実際には不可能に思えます。提案または確認さえありますか?