11-15-2007 9:28 AM
In standard SQL:
SELECT <b>a.*</b> FROM table_a as a JOIN table_b as b ON ....
In ABAP Open SQL, I'd like do the similar thing:
SELECT <b>a~*</b> FROM table_a as a JOIN table_b as b ON ....
While a~* is not valid statement. how could i do this? except for list all table_a's fields?
thanks
Said
11-15-2007 10:08 AM
Hi,
PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
DATA: BEGIN OF wa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa.
DATA itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY fldate carrname connid.
SELECT ccarrname pconnid f~fldate
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
JOIN spfli AS p ON pcarrid = ccarrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )
JOIN sflight AS f ON fcarrid = pcarrid
AND fconnid = pconnid ).
LOOP AT itab INTO wa.
WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.
i hope this will helpful for u
Reward points if its useful
11-15-2007 10:08 AM
Hi,
PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
DATA: BEGIN OF wa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa.
DATA itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY fldate carrname connid.
SELECT ccarrname pconnid f~fldate
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
JOIN spfli AS p ON pcarrid = ccarrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )
JOIN sflight AS f ON fcarrid = pcarrid
AND fconnid = pconnid ).
LOOP AT itab INTO wa.
WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.
i hope this will helpful for u
Reward points if its useful
11-15-2007 10:47 AM
There is not recommendet to do that in Abap SQL due to performance.
Br, Jacek
11-15-2007 10:59 AM
Of course it's possible:
select *
from tbl_1 as a join tbl_2 as b
where a~fld1 = ...........................
That's it.
example:
SELECT *
FROM KNA1
JOIN KNVV ON KNA1KUNNR = KNVVKUNNR
INTO CORRESPONDING FIELDS OF TABLE LT_CUST
WHERE KNA1~KUNNR IN S_KUNNR.
11-15-2007 12:09 PM
thank you all.
to manjari kotta: yes, i mean except the way to list each field like afield1 afield2 ...
to Jacek Slowikowski, Rebeka:
yes, select * will return all the fields of all the joined table; while i only want all fields of 1 table. Also, if table_a and table_b has fields with the same name, there will be error with INTO CORRESPONDING FIELDS. That what I need.
It seems no way to do that; i have to specify all the fields one by one i want.
Regards,
Said