2020-08-16 22:47发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我有两个内部表:保存BKPF数据的itab1和保存RSEG数据的itab2。
BELNR是两者的共同字段。
现在,我需要使用一个基于itab1和itab2中基于BELNR的选择查询从BSEG获取数据。
我该怎么做?
您好 Ricky Shaw ,如果您想在一个SELECT语句中使用它,建议您创建一个临时 由键字段(BELNR,GJAHR,BUKRS)组成的表(即LT_BSEG_PARTIAL_KEY),并根据您先前从BKPF和RSEG获取的条目进行填充。 我还建议对表进行排序,并从表中删除相邻的重复项。 正如 Mateusz Adamus 所述,请始终先检查您的表是否为空,然后再将其与FOR ALL ENTRIES语句一起使用。 关于, Bartosz
您运行的是S/4HANA还是旧版本的SAP ERP? BSEG是S/4HANA中的透明表,但是在旧版本中是集群表,它将提供两个完全不同的答案。 (并最终告诉我们您的ABAP版本,以便获得更准确的答案)
Ricky Shaw ,
您可以尝试以下代码:
排序:IT_BKPF,IT_RSEG。 *还可以通过比较必填字段,尝试在排序后从上述两个表中删除相邻重复项 如果it_bkpf []不是INITIAL。 选择 * 从bseg 插入表@DATA(it_bseg) 对于@it_bkpf中的所有条目 在哪里belnr = @ it_bkpf-belnr和 BUKRS = @ it_bkpf-bukrs和*希望该字段位于it_bkpf中 GJAHR = @ it_bkbf-bukrs。 *希望该字段位于it_bkpf中 如果sy-subrc EQ 0。 通过belnr排序it_bseg。 万一。 万一。 如果it_rseg []不是INITIAL。 选择 * 从bseg 附表@it_bseg 对于@it_rseg中的所有条目 在哪里belnr = @ it_rseg-belnr和 BUKRS = @ it_rseg-bukrs和*希望该字段位于it_rseg中 GJAHR = @ it_rseg-bukrs。 *希望该字段位于it_rseg中 如果sy-subrc EQ 0。 通过belnr排序it_bseg。 万一。 ENDIF。
致谢!
正如Bartosz所述,不能仅基于BELNR来完成对BSEG的访问,而必须基于以下三个主要条件来进行: 键列BELNR,GJAHR,BUKRS,否则您可以从BSEG中检索几条不相关的行。
try,
两个内部表都包含相同的结构,意味着可以使用 将it_rseg添加到it_bkpf或
从bseg选择*到表it_bseg中,用于it_bkpf
从bseg选择*将表it_bseg附加到it_rseg中的所有条目。
RAmesh
最多设置5个标签!
您好 Ricky Shaw ,
如果您想在一个SELECT语句中使用它,建议您创建一个临时 由键字段(BELNR,GJAHR,BUKRS)组成的表(即LT_BSEG_PARTIAL_KEY),并根据您先前从BKPF和RSEG获取的条目进行填充。 我还建议对表进行排序,并从表中删除相邻的重复项。 正如 Mateusz Adamus 所述,请始终先检查您的表是否为空,然后再将其与FOR ALL ENTRIES语句一起使用。
关于,
Bartosz
您运行的是S/4HANA还是旧版本的SAP ERP? BSEG是S/4HANA中的透明表,但是在旧版本中是集群表,它将提供两个完全不同的答案。 (并最终告诉我们您的ABAP版本,以便获得更准确的答案)
Ricky Shaw ,
您可以尝试以下代码:
致谢!
正如Bartosz所述,不能仅基于BELNR来完成对BSEG的访问,而必须基于以下三个主要条件来进行: 键列BELNR,GJAHR,BUKRS,否则您可以从BSEG中检索几条不相关的行。
try,
两个内部表都包含相同的结构,意味着可以使用 将it_rseg添加到it_bkpf或
从bseg选择*到表it_bseg中,用于it_bkpf
从bseg选择*将表it_bseg附加到it_rseg中的所有条目。
RAmesh
一周热门 更多>