筛选数据的更好解决方案

2020-09-16 07:40发布

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

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


亲爱的

我正在处理一个案例,以生成可以运行但非常慢的报告。 我张贴了有关数据选择部分的部分代码,有人可以帮我做得更好吗?

在方法get_ekko中选择的所有数据。 在方法get_ekko中,我需要选择b〜vstat NE 1的ebeln;在方法get_nast中,我需要选择vstat = 1的ebeln。如果这两个ebeln相同,则从at_ekko中删除记录。

当我尝试在Q中运行它时,运行getz-nast会花费很长时间,这会抛出整个nast。 有没有更好的方法来编写代码以使其更快,更有效。

非常感谢!

此致

林恩

 METHOD get_nast。
     选择nast〜objky nast〜vstat" obj键
     表at_nast的对应字段
     从纳斯特
     其中的vstat EQ 1。
   终结法。
   方法get_ekko。
     选择b〜objky" obj键
            b〜vstat的进程状态
            采购文件
            公司代码
            〜bsart文件类型
            一个〜ernam
            供应商编号
            c〜loekz" po删除= x
            d〜name1"供应商帐号
            a〜aedat创建
     表的对应字段at_ekko
     来自ekko AS
     内联接nast AS b
      在a〜ebeln EQ b〜objky AND
          b〜vstat NE 1
     内联ekpo AS c
       在a〜ebeln = c〜ebeln上
          c〜loekz <>'L'
     内联接lfa1 AS d
       在a〜lifnr = d〜lifnr
     在" a〜bsart ='UB'并且
           a〜aedat IN s_aedat和
           s_bukrs中的a〜bukrs。
     at_ekko BY ebeln排序。
     从at_ekko删除相邻的重复项。  "删除重复值
   终结法。


   方法get_data。
     FIELD-SYMBOLS:像at_ekko的线,
                    与at_nast类似,
                    类似于at_output的行。
     数据:lr_ebeln类型的ebeln,
           ls_ebeln与lr_ebeln类似。
     移动:"我"到ls_ebeln-sign,
           'EQ'到ls_ebeln-option。
     在at_nast ASSIGNING 处循环播放。
       将 -objky移动到ls_ebeln-low。
       附加ls_ebeln到lr_ebeln。
     结局。
     在lr_ebeln中的at_ekko处删除ebeln。


     在at_ekko分配处循环播放。
     结局。


   终结法。  " get_data

 

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

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


亲爱的

我正在处理一个案例,以生成可以运行但非常慢的报告。 我张贴了有关数据选择部分的部分代码,有人可以帮我做得更好吗?

在方法get_ekko中选择的所有数据。 在方法get_ekko中,我需要选择b〜vstat NE 1的ebeln;在方法get_nast中,我需要选择vstat = 1的ebeln。如果这两个ebeln相同,则从at_ekko中删除记录。

当我尝试在Q中运行它时,运行getz-nast会花费很长时间,这会抛出整个nast。 有没有更好的方法来编写代码以使其更快,更有效。

非常感谢!

此致

林恩

 METHOD get_nast。
     选择nast〜objky nast〜vstat" obj键
     表at_nast的对应字段
     从纳斯特
     其中的vstat EQ 1。
   终结法。
   方法get_ekko。
     选择b〜objky" obj键
            b〜vstat的进程状态
            采购文件
            公司代码
            〜bsart文件类型
            一个〜ernam
            供应商编号
            c〜loekz" po删除= x
            d〜name1"供应商帐号
            a〜aedat创建
     表的对应字段at_ekko
     来自ekko AS
     内联接nast AS b
      在a〜ebeln EQ b〜objky AND
          b〜vstat NE 1
     内联ekpo AS c
       在a〜ebeln = c〜ebeln上
          c〜loekz <>'L'
     内联接lfa1 AS d
       在a〜lifnr = d〜lifnr
     在" a〜bsart ='UB'并且
           a〜aedat IN s_aedat和
           s_bukrs中的a〜bukrs。
     at_ekko BY ebeln排序。
     从at_ekko删除相邻的重复项。  "删除重复值
   终结法。


   方法get_data。
     FIELD-SYMBOLS:像at_ekko的线,
                    与at_nast类似,
                    类似于at_output的行。
     数据:lr_ebeln类型的ebeln,
           ls_ebeln与lr_ebeln类似。
     移动:"我"到ls_ebeln-sign,
           'EQ'到ls_ebeln-option。
     在at_nast ASSIGNING 处循环播放。
       将 -objky移动到ls_ebeln-low。
       附加ls_ebeln到lr_ebeln。
     结局。
     在lr_ebeln中的at_ekko处删除ebeln。


     在at_ekko分配处循环播放。
     结局。


   终结法。  " get_data

 
付费偷看设置
发送
2条回答
樱桃小丸子0093
1楼 · 2020-09-16 08:14.采纳回答

我会尝试使用get_ekko SELECT中的子查询。 像这样:

不存在的地方(从ast中选择objky
                     objky = a〜ebeln和
                           vstat = 1)
ZJXianG
2楼-- · 2020-09-16 08:16

感谢Tomas很抱歉回复,所以我上个月在另一个团队工作很晚。 希望可以尝试您的想法。

干杯

林恩

一周热门 更多>