Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Need ABAP Query Builder Like Ms-SQLQuery Builder for Critical ABAP-Query

Former Member
0 Kudos

Dear ABAP Friends,

I Need ABAP Query Builder which is as flexible as Ms-SQLQuery Builder for building Critical ABAP-Queries e.g. "I have 4 master tables , Each master table having self-join with some condition and these 4 Result-Sets have Innser-Join+Left Outer Join " Please Help.

2 REPLIES 2

Former Member
0 Kudos

I have seen TCODE SQ01, But I found that this TCODE may be used to build simple ABAP Query with Selection-screen which can be used for generating simple report. But i think for critical query ??????????

I have build my Query in MS-SQL and got the right output, Now how do I write this in ABAP Using Join statement. Please Help.....................

My SQL Query as below(Remember this is a single Query and verified correct in SQL):

-


SELECT P1.PERNR, P1.ENAME, P1.BEGDA AS P1BEGDA, P1.ENDDA AS P1ENDDA, P1.AEDTM AS P1AEDTM, P1.UNAME AS P1UNAME, P1.PERSG, P1.PERSK,

P1.PLANS,

P2.ENDDA AS P2ENDDA, P2.BEGDA AS P2BEGDA, P2.AEDTM AS P2AEDTM, P2.UNAME AS P2UNAME, P2.GESCH, P2.FAMST,

P21.ENDDA AS P21ENDDA, P21.BEGDA AS P21BEDDA, P21.AEDTM AS P21AEDTM, P21.UNAME AS P21UNAME, P21.FAMSA, P21.FAVOR, P21.FANAM,

P21.FGBDT, P21.FASEX,

P0.ENDDA AS P0ENDDA, P0.BEGDA AS P0BEDDA, P0.AEDTM AS P0AEDTM, P0.UNAME AS P0UNAME, P0.MASSN,

P0.MASSG

FROM (SELECT TOP (100) PERCENT PA0001_2.PERNR, PA0001_2.ENDDA, PA0001_2.BEGDA, PA0001_2.AEDTM, PA0001_2.UNAME, PA0001_2.PERSG,

PA0001_2.PERSK, PA0001_2.PLANS, PA0001_2.ENAME

FROM PA0001 AS PA0001_2 INNER JOIN

(SELECT PERNR, MAX(ENDDA) AS ENDDA

FROM PA0001 AS PA0001_1

GROUP BY PERNR) AS Pi1

ON PA0001_2.PERNR = Pi1.PERNR

AND PA0001_2.ENDDA = Pi1.ENDDA

ORDER BY PA0001_2.PERNR) AS P1 LEFT OUTER JOIN

(SELECT TOP (100) PERCENT PA0000.PERNR, PA0000.ENDDA, PA0000.BEGDA, PA0000.AEDTM, PA0000.UNAME, PA0000.MASSN,

PA0000.MASSG

FROM PA0000 INNER JOIN

(SELECT PERNR, MAX(AEDTM) AS Pi0AEDTM

FROM PA0000 AS PA0000_1

GROUP BY PERNR) AS Pi0 ON PA0000.PERNR = Pi0.PERNR AND PA0000.AEDTM = Pi0.Pi0AEDTM

ORDER BY PA0000.PERNR) AS P0 ON P1.PERNR = P0.PERNR LEFT OUTER JOIN

(SELECT TOP (100) PERCENT PA0021.PERNR, PA0021.ENDDA, PA0021.BEGDA, PA0021.AEDTM, PA0021.UNAME, PA0021.FAMSA, PA0021.FAVOR,

PA0021.FANAM, PA0021.FGBDT, PA0021.FASEX

FROM PA0021 INNER JOIN

(SELECT PERNR, MAX(AEDTM) AS Pi21AEDTM

FROM PA0021 AS PA0021_1

GROUP BY PERNR) AS Pi21 ON PA0021.PERNR = Pi21.PERNR AND PA0021.AEDTM = Pi21.Pi21AEDTM

ORDER BY PA0021.PERNR) AS P21 ON P1.PERNR = P21.PERNR LEFT OUTER JOIN

(SELECT TOP (100) PERCENT PA0002.PERNR, PA0002.ENDDA, PA0002.BEGDA, PA0002.AEDTM, PA0002.UNAME, PA0002.GESCH,

PA0002.FAMST

FROM PA0002 INNER JOIN

(SELECT PERNR, MAX(ENDDA) AS Pi2ENDDA

FROM PA0002 AS PA0002_1

GROUP BY PERNR) AS Pi2 ON PA0002.PERNR = Pi2.PERNR AND PA0002.ENDDA = Pi2.Pi2ENDDA

ORDER BY PA0002.PERNR) AS P2 ON P1.PERNR = P2.PERNR

-


xxxxx----


Edited by: Goutam Roy on May 5, 2009 1:11 PM