从内部表中删除重复条目并提供用户值

时间:2017-03-21 05:14:31

标签: sap abap

使用ABAP我能够使用两个标准表格显示数据,但我有重复的条目。

EX:

A     16.03.2017    168
B     16.03.2017    150
A     16.03.2017    208

在这里,我想显示如下输出:

A     16.03.2017     200[here I want to give my value]
B     16.03.2017     150

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

问题不清楚你想要达到的目标。无论如何下面的部分应该工作。在这里,您需要定义两个变量row和last_row。

SORT tab.
LOOP AT tab INTO row.
  IF sy-tabix = 1.
    last_row = row.
  ELSE.
    IF  last_row-col1 = row-col1 AND last_row-col2 = row-col2. "duplicate
      last_row-value = 'My Value'.
    ELSE. "New values
      WRITE:/ last_row-col1, last_row-col2, last_row-value.
      last_row = row.
    ENDIF.
  ENDIF.
ENDLOOP.
IF sy-subrc EQ 0.
  WRITE:/ last_row-col1, last_row-col2, last_row-value.
ENDIF.

答案 1 :(得分:0)

我不太明白你的问题。但我想您可能需要以下代码供参考。

让我们为列提供一些名称,并为此内部表命名:lt_tab

C1    C2            C3
A     16.03.2017    168
B     16.03.2017    150
A     16.03.2017    208

请尝试以下原因:

SORT lt_tab BY C1 C2.
DELETE ADJACENT DUPLICATES FROM lt_tab COMPARING C1 C2.
LOOP AT lt_tab ASSIGNING FIELD-SYMBOL(<fs_tab>).
  IF <fs_tab>-C1 EQ 'A'.
    <fs_tab>-C3 = 200.
  ENDIF.
ENDLOOP.