次の問題が発生します。
私がしたいこと
特定の発注書について、異なるフィールドにディスパッチする必要がVBAK
あるテーブルの複数の行を含むテーブルのデータを再グループ化する情報セットを作成したいと考えています。VBPA
KUNNR
例: 次の PO 111005229 の場合、最初のフィールドで対象のフィールドを取得しPARVW = 'ER'
、2 番目のフィールドで対象のフィールドを取得したいと考えてADRNR
いPARVW = 'BP'
ます。
望ましい出力:
私が試したこと
SQ02 で両方のテーブルを結合する
VBAK
2 つのテーブルを宣言しようとしましたがVBAP
、SQ02 TCode の実行中に目的のフィールドを選択しました。
これは機能しません:
- SE16N と同様に、フィルター処理されたデータを含む 1 行が必要な場合、クエリは注文書のすべての行を返します。
- コード部分でを使用して
CHECK VBPA-PARVW = 'ER'.
、Record processing
特定の PO の行数を 1 に減らすことを期待すると、値はまったく返されません。
SQ02でVBAKテーブルのみ宣言
VBAK
また、SQ02 でテーブルのみを宣言し、必要な追加フィールドを作成して、これらの特定のフィールドに関連するコードでPERNR_ER
結合しようVBAK
としました。VBPA
openSQL
追加のフィールドを作成PARVW_ER
しPERNR_ER
、次のコードを埋め込みました。
SELECT PARVW
INTO PARVW_ER
FROM VBPA
WHERE VBELN = VBPA~VBELN.
AND PARVW = 'ER'.
ENDSELECT.
SELECT PERNR
INTO PERNR_ER
FROM VBPA
WHERE VBELN = VBPA~VBELN.
AND PARVW = 'ER'.
ENDSELECT.
出力として与える
私も試しました
TYPES: begin of TY_TABLE,
PARVW LIKE VBPA-PARVW,
PERNR LIKE VBPA-PERNR,
END OF TY_TABLE.
DATA: WA_TABLE TYPE TY_TABLE,
IT_TABLE TYPE TABLE OF TY_TABLE.
SELECT PARVW PERNR
APPENDING CORRESPONDING FIELDS OF TABLE IT_TABLE
FROM VBPA
WHERE VBELN = VBPA~VBELN.
LOOP AT IT_TABLE INTO WA_TABLE.
IF WA_TABLE-PARVW = 'ER'.
PARVW_ER = WA_TABLE-PARVW.
PERNR_ER = WA_TABLE-PERNR.
ENDIF.
ENDLOOP.
しかし、それは同じを返しました。
期待される結果を得るにはどうすればよいですか?