Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Internal Tables →  Processing Statements for Internal Tables →  AT - itab 

SUM

Short Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


SUM. 

Effect

The statement SUM can only be specified within a loop starting with LOOP, and is only considered within a AT-ENDAT control structure. Prerequisites for using the statement SUM include using the addition INTO in the LOOP statement, and that the specified work area wa is compatible with the row type of the internal table. In addition, SUM cannot be used when the row type of the internal table itab contains components that are tables.

The statement SUM calculates the sums of the components with numerical data type of all rows in the current group level and assigns the sums to the components of the work area wa. In the control levels FIRST, LAST, and outside of an AT-ENDAT control structure, the system calculates the sum of numeric components of all rows in the internal table.


Example

Control level processing for creating a list. At the end of line groups, the total of reserved places is calculated and issued.

DATA: sflight_tab TYPE SORTED TABLE OF sflight 
                  WITH UNIQUE KEY carrid connid fldate, 
      sflight_wa  LIKE LINE OF sflight_tab. 

SELECT * 
       FROM sflight 
       INTO TABLE sflight_tab. 

LOOP AT sflight_tab INTO sflight_wa. 
  AT NEW connid. 
    WRITE: / sflight_wa-carrid, 
             sflight_wa-connid. 
    ULINE. 
  ENDAT. 
  WRITE: / sflight_wa-fldate, 
           sflight_wa-seatsocc. 
  AT END OF connid. 
    SUM. 
    ULINE. 
    WRITE: / 'Sum', 
              sflight_wa-seatsocc UNDER sflight_wa-seatsocc. 
    SKIP. 
  ENDAT. 
  AT END OF carrid. 
    SUM. 
    ULINE. 
    WRITE: / 'Carrier Sum', 
             sflight_wa-seatsocc UNDER sflight_wa-seatsocc. 
    NEW-PAGE. 
  ENDAT. 
  AT LAST. 
    SUM. 
    WRITE: / 'Overall Sum', 
              sflight_wa-seatsocc UNDER sflight_wa-seatsocc. 
  ENDAT. 
ENDLOOP. 

Exceptions


Catchable Exceptions

CX_SY_ARITHMETIC_OVERFLOW

  • Cause: Overflow when calculating totals
    Runtime Error: ADDF_INT_OVERFLOW
  • Cause: Value too large when calculating totals in internal table, field too small
    Runtime Error: SUM_OVERFLOW


Non-Catchable Exceptions

  • Cause: The statement SUM was used outside a LOOP processing of an internal table.
    Runtime Error: SUM_NO_INTERNAL_TABLE
  • Cause: The statement SUM was used within a LOOP processing belonging to another ABAP program.
    Runtime Error: SUM_ON_FOREIGN_INTERNAL_TABLE
  • Cause: The statement SUM was used within a loop starting with LOOP ... ASSIGNING.
    Runtime Error: SUM_NO_ASSIGNING