我遇到以下问题。
我想做的事
我想创建一个信息集,对于给定的采购订单,表中的数据与VBAK
表中的几行数据重新组合,这些行VBPA
应该被分派到不同的字段。
示例:对于以下 PO 111005229,我想在第一个字段中检索KUNNR
哪个字段,PARVW = 'ER'
在第二个字段中检索哪个ADRNR
字段PARVW = 'BP'
。
期望的输出:
我试过的
在 SQ02 中加入两个表
我试图声明 2 个表VBAK
,并VBAP
在运行 SQ02 TCode 并选择所需的字段:
这不起作用:
- 就像在 SE16N 中一样,当需要带有过滤数据的单行时,查询返回采购订单的每一行;
- 当
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.
但它返回相同。
我应该如何继续获得预期的结果?