我可以通过使用视图或打开sql来过滤功能位置吗?

2020-09-07 23:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我使用的视图包含IFLOT,IL...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我使用的视图包含IFLOT,ILOA和IFLOTX上的字段。

该视图称为ZAPMFLOCS。

我希望能够设置删除标记来排除功能位置。

我能够找出要排除记录的SQL。

这是我的代码,没有替换变量。

从(lv_from)到lv_rowcount行中选择(selectpart)行到表的对应字段中(wherepart_modified)。

这是替换后的样子:

从* ZAPMFLOCS中选择*最多50000行到表的相应字段中 OBJNR不在(从ZAPMFLOCS中选择f.OBJNR f从f.OBJNR = j.OBJNR上的JEST j离开外部联接J,其中j。 STAT ='I0076'和j.INACT <>'X')

但这失败了,我猜我的where子句太复杂了,无法与开放式sql一起使用。

我想知道是否有一种方法可以更改视图或代码以设置删除标记来排除功能位置?

sql-error.jpg

sql-error.jpg (235.6 kB)
付费偷看设置
发送
3条回答
暮风yp
1楼-- · 2020-09-07 23:20

请问上面的sql是开放式sql还是本机sql? 打开SQL的语法不应为:

 table.field 

,但是

 table〜field 

我不认为您的sql运行。 它应该是:

 SELECT * FROM zapmflocs
 高达50000行
 表的对应字段
 objnr NOT IN在哪里(从zapmflocs中选择f〜objnr AS f左外连接jest AS j ON f〜objnr = j〜objnr
                      其中j〜stat ='I0076'和j〜inact <>'X')
悠然的二货
2楼-- · 2020-09-07 23:26

德里克·莫林

系统是7.4 SP 14,您的代码对我有用。

clasier
3楼-- · 2020-09-07 23:28

取决于您的ABAP版本,可能会有不同的限制。

因此,首先,请确保替换的SELECT是 在编译时和运行时有效。

如果不起作用,您还可以尝试切换到严格模式语法,因为它可以接受更复杂的SQL(添加@并更改块顺序) ):

选择(selectpart)从(lv_from)
 在哪里(wherepart_modified)
 表@ 的对应字段
 直到@lv_rowcount ROWS。

一周热门 更多>