点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在更新tcode以添加两个要过滤的字段。 下面的代码显示运行正常,但是我收到了语法检查警告,提示键字段" MJAHR"的条件未测试是否相等。 有点奇怪,我没有使用该字段。 有人可以帮我解释为什么会这样吗?
非常感谢!
此致
林恩
清除lv_mseg_lgort。 选择单个lgort进入lv_mseg_lgort 从mseg 其中mblnr = ls_output-refbn和 zeile = ls_output-refbz。 如果sy-subrc = 0。 ls_output-lgort = lv_mseg_lgort。 其他。 ls_output-lgort =''。 万一。
"语法检查警告
此警告仅在SLIN中显示
在" SELECT SINGLE ..."中,键字段" MJAHR"的WHERE条件不会
测试是否相等。因此, 该单个记录可能不是
唯一。
内部消息代码:MESSAGE GSB"
这是在告诉您,从技术上讲,数据库中可能有多个具有相同MBLNR的条目,每个条目都属于不同的MJAHR。 结合SELECT SINGLE,它告诉您,在这种情况下,您将只获得随机结果。
只有添加MJAHR,才能保证获得您想要的记录。
Lynn,
还在where子句中使用MJAHR,这将满足主键要求,同时结果将保持一致。
K.Kiran。
嗨琳,
选择单个通常是从表中获取唯一行,即传递完整键。
当键为部分键时,扩展检查将显示错误,因为它可能会拾取随机行。
您可以在
处获得更多信息。https://help.sap .com/doc/abapdocu_751_index_htm/7.51/zh-CN/abapselect_single.htm
要解决此问题,您可以在where子句中传递完整密钥,也可以使用最多选择1行
感谢Kiran解决了问题:)
https://blogs.sap.com/ 2015/03/11/从数据库表中选择一行/
"该语法记录了程序中语句的语义,如果未指定完整键,则扩展程序检查会警告您。"
感谢Matthew,您说得对,我应该弄清楚为什么。
干杯
lyn
Hi Himanshu,
问题已解决,谢谢您的帮助:)
一周热门 更多>