問題タブ [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.

0 投票する
1 に答える
2549 参照

greatest-n-per-group - 相関サブクエリを結合に置き換えます

次の ABAP OpenSQL スニペット (はるかに大きなステートメントの where 句内) を同等の結合に置き換えたいと思います。

私の動機: ABAP CDS ビューへのクエリの移行 (基本的にプレーンな SQL と比較して、表現力がいくらか低下しています)。残念ながら、相関サブクエリと EXISTS ステートメントはサポートされていません。

私は少しグーグルで検索し、可能な解決策(最後の投稿)を見つけましたhttps://archive.sap.com/discussions/thread/3824523

ただし、提案は

  1. MAX(値)の選択
  2. 最初の CDS ビューへの内部結合を使用するシナリオ

私の場合はうまくいきません。

  1. tf.bis (および tf.ab) は、結合 (新しいビュー) の rhs を正しい時間枠に制限するために、新しいビューの選択リストに含まれている必要があります。
  2. 残念ながら、同じ tf.tarifart を持つ複数の (重複しない) サブ時間フレーム ([tf.ab, tf.bis] に含まれる) が存在する可能性があります。これらは一緒にグループ化できないため、rhs に複数の行が作成されます。

元のクエリには問題はありません (結合なし -> デカルト積なし)。

次のフィドル(実際の例)が少し解決することを願っています:http://sqlfiddle.com/#!9/8d1f48/3

これらの制約を考えると、同等の結合は実際には不可能に思えます。提案または確認さえありますか?