Open all | Close all

Performance tuning using GROUPBY



************************************************************************
*     Performance tuning using GROUPBY
*
* Extracts from program ZFAL2002
************************************************************************


************************************************************************
* START-OF-SELECTION

  SELECT KALNR KALKA BWVAR MEEHT SUM( MENGE )
  INTO TABLE I_CKIS FROM CKIS
  WHERE KADKY <= SY-DATUM
    AND TVERS = '01'
    AND KALKA IN ('01','Z1','Z2')
    AND BWVAR IN ('Z01','Z02','Z03','Z04','Z07')
*   and kkzst = ' '
    AND KKZMA = ' '
    AND TYPPS = 'E'
    AND ( KSTAR <> 800040 OR KSTAR <> 800050 )
    AND ( MEEHT = 'MIN' OR MEEHT = 'H' )
  GROUP BY KALNR KALKA BWVAR MEEHT.

* Perform actual processing
  Perform get_associated_labour_hours.


*----------------------------------------------------------------------*
FORM GET_ASSOCIATED_LABOUR_HOURS.
* Determine start position and then process single record for given key
* i_ckis is sorted on kalnr kalka bwvar meeht with menge summated.
  READ TABLE I_CKIS WITH KEY KALNR = W_KEKO-KALNR
                             KALKA = W_KEKO-KALKA
                             BWVAR = W_KEKO-BWVAR
                             MEEHT = 'H'          BINARY SEARCH.
  IF SY-SUBRC = 0.
    D_LAB_HRS =  I_CKIS-MENGE * 60.
  ENDIF.

  READ TABLE I_CKIS WITH KEY KALNR = W_KEKO-KALNR
                             KALKA = W_KEKO-KALKA
                             BWVAR = W_KEKO-BWVAR
                             MEEHT = 'MINS'       BINARY SEARCH.
  IF SY-SUBRC = 0.
    D_LAB_HRS =  D_LAB_HRS + I_CKIS-MENGE.
  ENDIF.

  D_LAB_HRS = D_LAB_HRS / W_KEKO-LOSGR.
  D_LAB_HRS = D_LAB_HRS / 60.          "Convert from mins into hours
ENDFORM.                               " GET_LABOUR_HOURS_ASSOCIATED


SAP ABAP development help
More SAP ABAP development help and information


ABAP code and information
More SAP ABAP development tips and tricks

 
 

Number of SAP Development Users currently online hit counters