Tuesday, November 21, 2023

CTE ( Common Table Expressions )

 CTE: 

ABAP has provided a fantastic way to increase the performance of applications through CTE. 

This seems be very familiar to AMDP procedures. I am calling it the AMDP flavor with OpenSQL. 

Below snippet is an example of how you can avoid multiple select queries and combine them into one. This way we can use subqueries and internal tables to bring out the most from OpenSQL. 

The ultimately the goal is to hit the database as less as possible and bring data as much as possible. 

WITH +kun AS (
          SELECT DISTINCT bseg~belnr kna1~kunnrkna1~name1 FROM kna1
          JOIN bseg ON bseg~kunnr kna1~kunnr AND bseg~koart 'D'
          JOIN bkpf ON bkpf~belnr bseg~belnr AND bkpf~gjahr bseg~gjahr
          WHERE bkpf~belnr IN @s_belnr AND 

          bkpf~bukrs @p_bukrs AND bkpf~gjahr @p_gjahr

          )
SELECT bkpf~belnr,
  bkpf~bldat,
  +kun~name1,
  SUMbseg~wrbtr AS wrbtr,
  bkpf~waers,
  CAST' ' AS CHAR255 AS in_word,
  bseg~sgtxt,
  bkpf~xblnr as bktxt"bkpf~bktxt,
  bseg~zuonr
  FROM bkpf JOIN bseg
  ON bkpf~bukrs bseg~bukrs AND bkpf~belnr bseg~belnr AND bkpf~gjahr bseg~gjahr
  AND bseg~hkont BETWEEN '0025000000' AND '0025999999'
  LEFT JOIN +kun
  ON bseg~belnr +kun~belnr "and kna1~kunnr <> ' '
  WHERE bkpf~bukrs @p_bukrs AND bkpf~belnr IN @s_belnr AND bkpf~gjahr @p_gjahr
  GROUP BY bkpf~belnrbkpf~bldatbkpf~waers+kun~name1bseg~sgtxtbkpf~xblnrbseg~zuonr
  INTO TABLE @DATA(it_final.


No comments:

Post a Comment

How to Find Implemented BADIs for a Tcode in SAP

  Simple way to find implemented BADI for a TCode in SAP  First We have to find the Package for the transaction. 1.      Go to that par...