点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
有两种不同的代码,但是它们的功能应该相同。
在下面的代码行中,谁能告诉我有什么问题?
选择a〜matnr 进入表lt_matnr 来自marc AS a 内部联接t001w AS b在a〜werks上等于b〜werks 内部联接t001k AScON b〜bwkey = c〜bwkey 在p_code中的c〜bukrs中。
我已通过选择屏幕选择了多个公司代码,并将值存储在p_code中,
问题:正在获取marc表的所有matnr,
在t001k的p_code中的bukrs中选择bwkey到表lt_bwkey中。 从t001w到lt_bwkey中的所有条目,从t001w中选择SELECT进入表lt_werks,其中bwkey EQ lt_bwkey-bwkey。 从marc中选择matnr到表lt_matnr中,以查询lt_werks中的所有条目,其中EQ使EQ均衡lt_werks-werks。
问题:没有提取任何Matnr条目
这些代码有什么问题? 我正在尝试更新代码,而没有像您提到的那样使用select的低位。
您好 Mehabub Mondal ,
差异的原因是 加入条件中的非关键字段。 我的意思是Th BWKEY字段,因为它是一个非键字段,所以它也可以在表(T001W)中保存空值或NULL值。 由于这种连接条件将受到很大的影响。
如果您是第二个人查询,则空条目将永远不会出现。
这是差异的窍门或原因
希望您在这里了解逻辑,让我们知道是否需要澄清!
注意!
对于双内连接, 您是否在调试中检查了P_CODE的内容?
对于第二个程序,必须保护FOR FOR ENTRIES
(如果表为空,则程序将读取整个表)
嗨,
下面的代码很好:
与您发布的相同。
可能您未在p_code中输入任何值。 不要将其留空并尝试输入任何值,然后查看记录是否应过滤。 否则,显然将获得所有MARC记录。
注意
GK
1。 是的,p_code具有该值,并且应该给出结果。 但这不是。
2。 对于第二个问题,我已经理解了这个问题。 谢谢
你好 Mehabub Mondal ,
建议您执行以下步骤:
对具有正确关键字字段的两个表进行联接,也要使用FOR ALL ENTRIES编写相同的查询。 在这两种情况下,您将找到一致的数据。 因为已经引入了关键字段。
如前所述,当非关键字段是JOIN的一部分时,联接将不一致。
您也可以这样做,而不是三个 查询中的两个表都写有两个表(MARC和T001W),并看到它们之间的区别。
致谢!
您好 Gaurav Karkara ,您能告诉我在表格行和调试屏幕中都没有输入的条目吗?
表行的意思是,在se16中传递表名称,并将您提供的相同值传递给p_code。
在我的末端,这些条目的数目是不同的。 那就是我实际上要说的!
一周热门 更多>