问题描述
请教一个ABAP中forallentriesinita的问题。以下是我的代码:SELECTVBAK~VBELNVBAK~KUNNRVBAP~POSNRVBAK~VKBURVBAK~BSTNKVBAK~ERDATVBAK~AUARTVBAP~MATNRVBAP~MATKLVBAP~WERKSVBAP~KWMENGT023T~WGBEZKNA1~NAME1INTOCORRESPONDINGFIELDSOFTABLEIT_GET_SOFROMVBAKINNERJOINVBAPONVBAK~VBELN=VBAP~VBELNLEFTJOINT023TONVBAP~MATKL=T023T~MATKLANDT023T~SPRAS='1'LEFTJOINKNA1ONVBAK~KUNNR=KNA1~KUNNRWHEREVBAK~AUARTIN('ZOR','VOR')ANDVBAP~MATNRINSO_MATNRANDVBAP~MATKLINSO_MATKLANDVBAP~WERKSINSO_WERKS.SELECTVBFA~VBELVVBFA~POSNVVBFA~MATNRVBFA~VBTYP_NVBFA~RFMNG*VBFA~VBELNINTOCORRESPONDINGFIELDSOFTABLEIT_MAT_DOCFROMVBFAFORALLENTRIESINIT_GET_SOWHEREVBELV=IT_GET_SO-VBELNANDPOSNV=IT_GET_SO-POSNR.但是在IT_MAT_DOC内表中的内容与VBFA表中的内容相比,少了部分的数据。如:VBELN=10003,在VBFA中有5条记录,但是我查出来的记录,却只有3条。这个是什么问题呢?望高手指教。
解决方案
解决方案二:
IT_MAT_DOC内有重复的记录SAP默认对内表做了DISTINCT操作
解决方案三:
谢谢,一开始怎么也想不通,后来在网上搜,终于搜到此原因。因为我们有分批发货的情况,故有相同的发货记录。我再加了一个时间段之后,问题得到解决。谢谢Footballnight的热心解答。