从MARC表中获取错误的条目数

2020-09-01 05:00发布

         点击此处--->   EasySAP.com群内免费提供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的低位。

         点击此处--->   EasySAP.com群内免费提供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的低位。

付费偷看设置
发送
6条回答
Haoba3210
1楼-- · 2020-09-01 05:28

您好 Mehabub Mondal

差异的原因是 加入条件中的非关键字段。 我的意思是Th BWKEY字段,因为它是一个非键字段,所以它也可以在表(T001W)中保存空值或NULL值。 由于这种连接条件将受到很大的影响。

如果您是第二个人查询,则空条目将永远不会出现。

这是差异的窍门或原因

希望您在这里了解逻辑,让我们知道是否需要澄清!

注意!

宇峰Kouji
2楼-- · 2020-09-01 05:24

对于双内连接, 您是否在调试中检查了P_CODE的内容?

对于第二个程序,必须保护FOR FOR ENTRIES

(如果表为空,则程序将读取整个表)

风早神人
3楼-- · 2020-09-01 05:34

嗨,

下面的代码很好:

 SELECT a〜matnr
       不可操作的lt_matnr
       来自marc AS a
       INNERJOIN t001w AS b在a〜werks上= b〜werks
       INNERJOIN t001k AScON b〜bwkey = c〜bwkey
         在p_code中的位置。
 

与您发布的相同。

可能您未在p_code中输入任何值。 不要将其留空并尝试输入任何值,然后查看记录是否应过滤。 否则,显然将获得所有MARC记录。

注意

GK

歪着头看世界
4楼-- · 2020-09-01 05:26

1。 是的,p_code具有该值,并且应该给出结果。 但这不是。

2。 对于第二个问题,我已经理解了这个问题。 谢谢

三十六小时_GS
5楼-- · 2020-09-01 05:17

你好 Mehabub Mondal

建议您执行以下步骤:

对具有正确关键字字段的两个表进行联接,也要使用FOR ALL ENTRIES编写相同的查询。 在这两种情况下,您将找到一致的数据。 因为已经引入了关键字段。

如前所述,当非关键字段是JOIN的一部分时,联接将不一致。

您也可以这样做,而不是三个 查询中的两个表都写有两个表(MARC和T001W),并看到它们之间的区别。

致谢!

SKY徐
6楼-- · 2020-09-01 05:35

您好 Gaurav Karkara ,您能告诉我在表格行和调试屏幕中都没有输入的条目吗?

表行的意思是,在se16中传递表名称,并将您提供的相同值传递给p_code。

在我的末端,这些条目的数目是不同的。 那就是我实际上要说的!

一周热门 更多>