【问题标题】:Delete Adjacent Duplicates alternative code without delete删除相邻重复替代代码而不删除
【发布时间】:2012-12-13 14:26:36
【问题描述】:

我想编辑程序,从而在由数据库表创建的gt_ugtyt 表处循环。但是我有一个问题。

STDATE-STTIME-ENDDATE-ENDTIME(字段名称)

我想求和(ENDTIME-STTIME)。它的意思是“工作时间”。但是您可以看到与 (STDATE-STTIME-ENDDATE-ENDTIME) 相同的行。因为我们在我们的多重生产过程中给出了两次确认(这并不重要。请注意)。我必须使用独特的变量。

我定义了一个临时表为gt_ugtyt_temp,并写了如下代码

SORT gt_ugtyt_temp BY endat stdat sttim entim.

DELETE ADJACENT DUPLICATES FROM gt_ugtyt_temp COMPARING endat stdat sttim entim.

但我想循环输入 gt_ugtyt 。我想读取和计算唯一行作为(STDATE-STTIME-ENDDATE-ENDTIME)。但我不想写

DELETE ADJACENT DUPLICATES FROM gt_ugtyt COMPARING endat stdat sttim entim.

因为其他代码正在使用 gt_ugtyt 上的所有行。

有没有类似的代码(这不是真正的代码:)):

READ UNIQUE ROWS FROM FROM gt_ugtyt COMPARING endat stdat sttim entim.

【问题讨论】:

  • 您能否提供更多背景信息?您要查找的语句不存在。在不知道为什么不想复制表格或修改表格的情况下,很难提供替代方案。

标签: row unique abap duplicate-removal


【解决方案1】:

我不清楚你想做什么,但是,你不能把gt_ugtyt的行复制到本地临时表lt_ugtyt_unique_rows,然后在上面做你需要的操作吗?

DATA:
  lt_ugtyt_unique_rows LIKE gt_ugtyt.

INSERT LINES OF gt_ugtyt INTO lt_ugtyt_unique_rows.

DELETE ADJACENT DUPLICATES FROM lt_ugtyt_unique_rows COMPARING endat stdat sttim entim.

*Sum what you need with lt_ugtyt_unique_rows

【讨论】:

    【解决方案2】:

    所以gt_ugtyt_temp 包含唯一记录,gt_ugtyt 包含所有记录,而您想对来自gt_ugtyt 的所有唯一记录求和?

    这个伪代码怎么样:

    loop at gt_ugtyt_temp assigning [line]
        loop at gt_ugtyt where stdate = [line]-stdate sttime = [line]-sttime (etc)
            [sum all values either changing [line] or put them in a new table]
        endloop.
    endloop
    

    【讨论】:

    • 我不想为此使用循环。因为 gt_ugtyt 的所有行都在 gt_ugtyt 的循环中使用。在旧代码中,计算工作时间(没有用于计算每个 gt_ugtytrow 工作时间的循环)和“在 gt_ugtyt 处循环”的总和。
    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2018-11-28
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多