05-04-2009 2:00 PM
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.
05-04-2009 5:56 PM
05-05-2009 12:11 PM
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