問題タブ [internal-tables]
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 - 内部テーブルのネストされたグループ化
フィールド anln1 と anln2 に異なるエントリを持つすべての行を取得したいと思います。これには、適切な OpenSQL ステートメントが必要です。
たとえば、次の表があります。
anln1 + anln2のすべてのエントリは、別のサブ番号がある場合、たとえば anln2=1 のように、 datum、psp、およびprztの組み合わせを繰り返す必要があります。
残念ながら、私のテーブルはこの仕様に違反しています (SQLFiddle: http://sqlfiddle.com/#!2/f5d1f ):
私のクエリの結果として、仕様に違反しているすべての行を特定する必要があります。正しい行はそのままにしておく必要があります。正しい行は、anln1 が 10001、10002、10003、10004、10007 の行です。
したがって、結果は次のようになります。
GROUP BY、HAVING、および COUNT(...) > 1 を試してみましたが、有用な結果にはなりませんでした。これは(Open)SQLでも解決できますか?
あなたの助けを本当に楽しみにしています!私の SQLFiddle ( http://sqlfiddle.com/#!2/f5d1f ) を使用して試してみてください。
performance - ABAP で長時間実行されるループを高速化
SAP エクスポート スクリプト (SAP R/3、4.06b) のパフォーマンスの問題を分析したところ、テスト システムで約 10 分間実行される次のコードが見つかりました。本番環境では少し速いかもしれませんが、そこでテストすることはできません。
このループを最適化して 1 つのループにまとめる方法について何かアドバイスはありますか?
loops - ループ内の重複を削除しますか?
いくつかのデータを含むテーブルがあります:
次のような重複を削除する必要があります。
しかし、この場合は使えませんdelete adjacent duplicates
。
私に何ができる?
abap - 内部テーブルから一意の値を抽出する
内部テーブルの列または複数の列から一意の値を抽出する最も効率的な方法は何ですか?
algorithm - 組み合わせ ID で可能なすべての組み合わせの表
ちょっとした ABAP の課題があります。
ABAP プロジェクトの場合、2 つの列 (例 1) を持つ内部テーブルから、可能なすべての組み合わせを含む別のテーブル (例 2) を作成する必要があります。「X」列はパラメータを表します。「Y」はパラメータ値を表します。
例1:
X(パラメータ) Y(値)
Aa1
Aa2
Aa3
Bb1
B b2
Cc1
Cc2
結果テーブル (example2): 数値 ID (3 列) を持つすべての組み合わせを取得する必要があります。新しい「z」列は組み合わせ ID を表します。各組み合わせには、dictinct パラメーターの数に等しい数の行があります (この場合、A、B、および C に対して 3 行)。「x」列は引き続きパラメーターを表し、「y」列は関連する値を表します。
例 2:
z(組み合わせ数) x(パラメーター) y(値)
1Aa1
1Bb1
1C c1
2Aa1
2Bb1
2C c2
3Aa1
3Bb2
3C c1
4Aa1
4Bb2
4C c2
など...など...など...
12Aa3
12Bb2
12C c2
もう 1 つの注意点は、パラメーターの数とパラメーターごとの値の数が固定されていないことです (最初の内部テーブルは大幅に進化する可能性があるため、組み合わせが可能になります)。
再帰が必要かもしれませんが、よくわかりません。
abap - ループ at と sy-subrc 関係
ループステートメント中にこの問題があります。
私はループを持っています:
問題は、sy-subrc チェックをスキップすることです。ループが実行され、レコードが見つからない場合 (sy-subrc = 4)、結果フィールドに '' が代入されず、代わりに最初のステートメントが保持されます。
どうしたの?
abap - 内部テーブルを使用する場合
そのため、内部テーブルを使用するとプログラムのパフォーマンスが向上し、DB テーブルでの操作をできるだけ少なくする必要があることを読みました。しかし、内部テーブルをまったく使用しないプロジェクトに取り組み始めました。
いくつかの詳細:
店舗に商品を追加または削除するスキャナーです。最初に主キーがチェックされ (そのタイプの製品が存在するかどうかが確認されます)、次に製品が追加または削除されます。「Insert Into」と「Delete From」を使用して、DB テーブルから製品を直接追加/削除します。
これまでのところ、より良い解決策がないため、内部テーブルを使用しない理由を尋ねていません。
これまでのところ、すべての製品を内部テーブルに挿入し、削除した製品を別の内部テーブルに配置します。
しかし、いつこの更新を実行できますか? 「保存ボタン」を設定して更新を実行することもできますが、ユーザーが大量のデータを保存するのを忘れたり、スキャナーを落としてシャットダウンしたり、同様の状況が発生したりするリスクがあります。したがって、これは明らかに良い解決策ではありません。私の最後の質問は: このようなプロジェクトで内部テーブルを実装する (良い) 方法はありますか?
abap - DELETE itab1 FROM itab2 内での型の競合?
私は最近ダンプを持っていました、
そして、内部テーブルからテーブルを削除する行で-私はダンプを持っていました: ステートメント Convert object to integer では、数値型のデータ オブジェクトのみが引数位置 "オブジェクト" でサポートされています。この場合、オペランド「object」は非数値データ型「TABLE OF TY_DATA」を持ちます。私は理解できません - なぜですか?両方とも同じ型でした... ので、アドバイスとエラーの原因の説明を少し提供していただければ幸いです。
subset - テーブル内包表記: 内部テーブルから別のテーブルへのサブセットの取得
トピックで述べたように、内部テーブルの条件付きサブセットを別の内部テーブル内に配置したいと考えています。
まず、昔ながらの方法のように見えるものを見てみましょう。
私たちは皆、これを知っているかもしれません。
今、私はabap 7.40、明らかにSP8で導入されたテーブルを削減するものについて読んでいました。
表内包表記 - 機能的に表を作成する
テーブル駆動:
VALUE tabletype( FOR 行 IN タブ WHERE ( … )
( … 行… … 行… … ) )
ソース テーブルで選択された行ごとに、結果テーブルで行を作成します。静的行数から動的行数への値コンストラクターの一般化。
私はそれを試していましたが、結果は実際には合っていないようです。おそらく私のやり方が間違っているか、条件駆動型のアプローチが必要なのかもしれません。
では、上記のステートメントを表理解テクニックで書きたいとしたら、どのようになりますか?
今まで私はこれを持っていましたが、私が必要としているものではなく、それを提供していませんでした。
ヒントがある人はいますか?
EDIT:まだ動作していないようです。これが私がやっているようです:
実行可能な行:
デバッガーの結果:
間違った削減:
そして今何???