Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos
Quick Transposing of data from multiple rows to single row fields for a given Key field.

I recently encountered a requirement to transpose data from multiple rows to a single row for a given Key field.
Would like to clarify that there might be multiple ways to fashion this,however below is my take on it.

Scenario : Data in the source


















Source (ZFAMILY)
Key Members
X Family 4
Y Family 3







































Source (ZFAMILY_DET)
Key Siblings
X Family James
X Family Harry
X Family Mary
X Family Louise
Y Family Carol
Y Family Theresa
Y Family Anita

Target : To achieve the below.




























Target Field Structure (SAP BW)  
Key        Sibling1 Sibling2 Sibling3 Sibling4
X Family James Harry Mary Louise
Y Family Carol Theresa Anita  

 

Sample Code to achieve this :

 

* ZFAMILY : Source Table
* ZFAMILY_DET : Source table with details on siblings.

DATA:

LT_DATA TYPE STANDARD TABLE OF ZFAMILY,
LIT_ZFAMILY_DET TYPE STANDARD TABLE OF ZFAMILY_DET,
WA_ZFAMILY_DET TYPE ZFAMILY_DET.
SELECT KEY FROM ZFAMILY INTO LT_DATA.
SELECT KEY FROM ZFAMILY_DET INTO LIT_FAMILY.

Logic :

LOOP AT LT_DATA  ASSIGNING <FS_DATA>.
LOOP AT LIT_ZFAMILY_DET INTO WA_ZFAMILY_DET WHERE KEY = <FS_DATA>-KEY
IF WA_ZFAMILY_DET-KEY IS NOT INITIAL.
IF <FS_DATA>-SIBLING1 = ''.
<FS_DATA>-SIBLING1= WA_ZFAMILY_DET-SIBLINGS.
ELSEIF <FS_DATA>-SIBLING2= ''.
<FS_DATA>-SIBLING2 = WA_ZFAMILY_DET-SIBLINGS.
ELSEIF <FS_DATA>-SIBLING3 = ''.
<FS_DATA>-SIBLING3= WA_ZFAMILY_DET-SIBLINGS.
ELSEIF <FS_DATA>-SIBLING4 = ''.
<FS_DATA>-SIBLING4 = WA_ZFAMILY_DET-SIBLINGS.
ENDLOOP.
ENDLOOP.

Cheers!
Russel
Labels in this area