删除相邻复制替代代码而不删除

时间:2012-12-13 14:26:36

标签: row unique abap duplicate-removal

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

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

enter image description here

我想要求和(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.

2 个答案:

答案 0 :(得分:2)

我不清楚您想要做什么,但是,您不能将行从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

答案 1 :(得分:0)

因此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