問題タブ [opensql]
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.
abap - マスターに一致するレコードがないときに子レコードが挿入されました
ZTR_DEPT
(マスターテーブル) とZTR_EMP
(子テーブル)の 2 つのテーブルを作成しました。
ABAPプログラムを介して親テーブルに一致するレコードがない子テーブルにレコードを挿入すると、エラーを報告せずにデータベースに挿入されます。レコードを子テーブルに手動で挿入すると、エラーが表示されます。
このような不一致の理由は何ですか?
subquery - WHERE 変数 = (サブクエリ) in OpenSQL
サブクエリが変数と一致するテーブルから行を取得しようとしています。ただし、WHERE 句では、選択したテーブルのフィールドを定数、変数、またはサブクエリと比較することしかできないようです。
私は次のようなものを書くことを期待しています:
しかし、明らかに、この選択はローカル変数をフィールド名として扱い、「ランタイムまで不明な列名「lv_expected_lines」、フィールドリストを指定できません」というエラーが表示されます。
しかし、標準 SQL では、これは完全に可能です。
では、RSQL / Open SQL でこのロジックを複製するにはどうすればよいでしょうか?
仕方がない場合は、おそらくネイティブ SQL を作成するだけで済みます。
abap - プログラム内のエラー DBIF_RSQL_INVALID_RSQL CX_SY_OPEN_SQL_DB
次のエラーが表示されます: DBIF_RSQL_INVALID_RSQL CX_SY_OPEN_SQL_DB (Open SQL コマンドが大きすぎます。Open SQL コマンドの条件 WHERE に含まれる条件が多すぎます)。エラーは次の行を指しています。
コードの他の部分:
私は ABAP を初めて使用するので、助けていただければ幸いです。
join - 2 つのテーブルの JOIN で行が返されない
関数ビルダーで SQL を使用して入力する3 つのテーブル を作成Z588B
しました。Z588T
ZFINALTABLE
最初にこれらのテーブルに参加しようとしましたが、エラーが発生しました
プール テーブルのクラスタ テーブルとプロジェクション ビューの結合は許可されていません
T588B
そのため、テーブルからのデータを格納する一時テーブルを作成したT588T
ので、一時テーブルを使用して、必要な出力フィールドである ZFINALTABLE にそれらを結合できます。
必要なデータを入力できましたがZ588B
、Z588T
これらの一時テーブルを使用した JOIN はデータを返しませんでした。
私の手順:
Z_BAPI_TESTP_FM
SE37を使用して関数モジュールを作成[インポート] タブで、パラメーターを定義しました。
se11 を使用して作成した宣言済み一時テーブル
ソースコードに私のSQLクエリを入力しました。
指定されたパラメーターの Z588B、Z588T にデータをロードできましたが、結合を含む最終的な sql は ZFINALTABLE テーブルのデータを返しません。
JOIN を使用した最後の SQL が ZFINALTABLE にデータを返さない理由を誰か教えてもらえますか?
aggregate-functions - FOR ALL ENTRIES itab キーによる SUM 合計
6 つのキー フィールドを持つデータベース テーブルに対して SELECT クエリを実行したいと考えています。キー フィールドが keyA、keyB、...、keyF であるとします。
ABAP 機能モジュールへの入力パラメータとして、キー項目の構造が正確に示されている内部テーブルを受け取ります。したがって、その内部テーブルの各エントリは、データベース テーブルの 1 つのタプルに対応します。
したがって、内部テーブルのエントリに対応するデータベース テーブルからすべてのタプルを選択するだけです。さらに、まったく同じクエリで、そのデータベース テーブルの金額列を集計したいと考えています。
疑似 SQL では、クエリは次のようになります。SELECT SUM(amount) FROM table WHERE (keyA、keyB、keyC、keyD、keyE、keyF) IN {内部テーブル}。
ただし、この表現は ABAP OpenSQL では不可能です。
複合キーではなく、1 つの列 (keyA など) のみを指定できます。さらに、「選択テーブル」(SIGN、OPTIOn、LOW、HIGH を持つテーブル) は、キーワード IN の後にのみ使用できます。FOR ALL ENTRIES を使用することは可能ですが、この場合、同じクエリで集計が許可されていないため、SUM を使用できません。
助言がありますか?
abap - ABAPの「select into table where」で10進フィルタを指定する方法は?
ABAP でこのようなクエリが必要ですが、うまくいきません。
私は試しました: WHERE amount = '100,15' しかし、それもうまくいきません。
where構文で小数点を指定する方法は?
abap - 3 つのテーブルを LEFT OUTER JOIN できない
問題があります。現在、私は 3 つのテーブルを持っています。最初のテーブルがメイン テーブルで、2 番目のテーブルにレコードがない場合は、それも書き込みます。ただし、2 番目のテーブルにレコードが存在する場合は、3 番目のテーブルから "dispo" 情報を表示します。
3 つの SAP テーブル (lagp、lqua、および marc) を使用したいと考えています。私の目標は、ラグからすべての株式ポジションを書き込むことです。
2x LEFT JOIN は機能しません: 「"B~MATNR" と比較できません。テーブルは、LEFT OUTER JOIN を使用して最大 1 つの他のテーブルと結合できます。
構造:
そしてSQLコマンド:
しかし、結果として、ストック ポジションは 1 つだけです - http://i.stack.imgur.com/1sEEo.png
SQL コードがどのようになっているのか教えていただけますか?
ありがとうございました