2012-12-13 110 views
0

我想编辑程序,因此循环在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. 
+1

请问您能否提供更多的背景信息?您正在查找的声明不存在。不知道为什么你不想复制表格或修改表格,很难提供替代方案。 – vwegert

回答

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 
+0

我不想为此使用循环。因为gt_ugtyt的所有行都在循环中使用gt_ugtyt。在旧代码中,计算工作时间(没有用于计算每个gt_ugtytrow工作时间的循环)以及“在gt_ugtyt处循环”的总和结束。 – cethint

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