Download - Open SQL & Internal Table
![Page 1: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/1.jpg)
ABAP Chapter 3
Open SQL Internal Table
![Page 2: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/2.jpg)
SAP System : 3 Tier Client/ServerSAP System : 3 Tier Client/Server
DB Server
SAP Application Server
SAP GUI Presentation
Server
SAP GUISAP GUI
![Page 3: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/3.jpg)
SAP SYSTEM (3 Tier Architecture)SAP SYSTEM (3 Tier Architecture)
Presentation Layer
(Windows based)
Application Layer
(Windows Server/UNIX)
Database Server
Database Layer
(Windows Server/UNIX)
M
SAP Instance
Oracle
Informix
DB2
MS SQL Server
SAP DB/MaxDB
G
Dispatcher
RequestQueue
D D B V S E
SAP Buffer(Shared Mem)
SAP GUI SAP GUI
![Page 4: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/4.jpg)
Database Server
Application Server
Dispatcher
RequestQueue
D D D D…
SAP Buffer
Program
Table
…
1
3
45
68
9
10
Report zpsm1.
Tables customers.
Select single * from
customers where id = 1.
Write: / customers-name.
Execute ABAP statement
Check Program in Program Buffer
7
Load&Gen Program
SQL Request
Send List
Generate Screen(List)Send Request
Request List
2 Search for free WP
Store request to queue
Send request to WP
SAP GUI
SAP System : Dialog Processing
![Page 5: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/5.jpg)
TaskHandler
DYNPRO Processor
ABAP Processor
Local Memory
Memory Space
DB Interface
List buffer
Database Server
Dialog Work Process
Dialog Work Process Architecture
Result Set Memory
![Page 6: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/6.jpg)
Open SQL SELECT ... INSERT ... UPDATE ... DELETE ...
![Page 7: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/7.jpg)
DB InterfaceDB Interface
Data
SAP Application Server
Local Memory
DataData
Dialog WP
TaskHandler
DB Interface
Result Set
DataData
Database Server~ 32 KB in length
ABAP Processor
DYNPRO
Memory Space
List Buffer
![Page 8: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/8.jpg)
Example Tables in DB
carrid connid cityfrom cityto distance
LH 0400 LA NY 100
LH 0402 BK NY 540
SQ 0110 SQ BK 250
id name city
1 John New York
2 Peter Singapore
3 David
London
customersspfli
![Page 9: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/9.jpg)
Example Tables in DB
carrid connid fldate price
LH 0400 20010101
150
LH 0400 20010110
145
LH 0400 20010228
130
SQ 0110 20010226
75
sflight
![Page 10: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/10.jpg)
Select Overview
Select <result> Which Columns?
From <table> Which Table? Into <destination> Where to
place? Where <condition> Which Lines?
![Page 11: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/11.jpg)
Select Statement Select multiple records from
database
Select single record from database
SELECT * FROM customers. …ENDSELECT.
SELECT SINGLE * FROM customers WHERE id = 1. …
![Page 12: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/12.jpg)
Select Multiple Records
Tables spfli. Seclect * from spfli.
write: / - -spfli carrid, spfli connid,spf -li cityto.
endselect.if - sy subrc <> 0.
write: / ‘No Data’.endif.
![Page 13: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/13.jpg)
Dialog WPDialog WPDialog WP
TaskHandler
DYNPRO Processor
ABAP Processor
Database
Local Memory
Memory Space
DB Interface
List buffer
Result Set
![Page 14: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/14.jpg)
SELECT Statement Working Steps
1. Transform open SQL to DB SQL and return result set into result set work area
SELECT * FROM spfli. …ENDSELECT.
SELECT * FROM spfli;
2. Loop with data in result set and transfer each record to work area in memory space
SELECT * FROM spfli. …ENDSELECT.
Table Structure in Memory Space
![Page 15: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/15.jpg)
Select … Into Table Structure
Tables spfli. *Seclect from spfli into spfli.
write: / - -spfli carrid, spfli connid,- -spfli cityfrom, spfli cityto.
endselect.if - sy subrc <> 0.
write: / ‘No Data’.endif.
![Page 16: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/16.jpg)
Select … Into Work AreaData wa like spfli.
*Seclect from spfli into wa. write: / wa- carrid, wa-connid,
wa- cityfrom, wa-cityto.endselect.if - sy subrc <> 0.
write: / ‘No Data’.endif.
![Page 17: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/17.jpg)
Exercise I
customers-id customers-name
customers-city
![Page 18: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/18.jpg)
SELECT with WHERE Clause
![Page 19: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/19.jpg)
Loop Processing with Restriction
Tables spfli. Select * from spfli
where cityfrom = ‘FRANKFURT’. - -write: / spfli carrid, spfli cityto.endselect.
- If sy subrc <> 0. write / ‘no data’.endif.
![Page 20: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/20.jpg)
Select With Range
Tables sflight.Select * From sflight
Where price between 100 and 1000.
Write: / sflight-carrid, sflight-connid, sflight-price.Endselect.
![Page 21: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/21.jpg)
SELECT … With IN List
Tables sflight.Select * From sflight Where price in ( 100, 1000 ). Write: / sflight-carrid, sflight-
connid, sflight-price.Endselect.
![Page 22: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/22.jpg)
Select Single Record
![Page 23: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/23.jpg)
Select Single Record
Tables spfli. *Select single from spfli
where carrid = ‘LH’ and connid = ‘0400’.
- if sy subrc = 0. - -write: / spfli carrid, spfli connid,
- -spfli cityfrom, spfli cityto.else.
write: / ‘Data not found’.endif.
![Page 24: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/24.jpg)
Select Column List
![Page 25: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/25.jpg)
Select * : Example
SELECT *
![Page 26: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/26.jpg)
Reading Selected Column
Data: id like customers-id, name like customers-name, city like customers-city.Select id name city into (id , name, city) from customers. write: / id, name, city.endselect.
- if sy subrc <> 0. write / ‘No Data found’.endif.
![Page 27: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/27.jpg)
Reading Selected Column
Data: begin of wa, id like customers-id, name like customers-name, city like customers-city, end of wa.Select id name city into wa from customers. write: / wa-id, wa-name , wa-city.endselect.
- if sy subrc <> 0. write / ‘No Data found’.endif.
![Page 28: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/28.jpg)
Select Column : Example I
![Page 29: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/29.jpg)
Reading Selected Column
Tables customers.Select id name city into (customers-id, customers-name, customers-city) from customers. write: / customers-id, customers-name, customers-city.endselect.
- if sy subrc <> 0. write / ‘No Data found’.endif.
![Page 30: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/30.jpg)
Select Column : Example II
![Page 31: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/31.jpg)
Corresponding Fields of...
Tables: customers.Select id name city into corresponding fields of customers from customers. Write: / customers-id, customers-name, customers-city.Endselect.
![Page 32: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/32.jpg)
Select Statement : Special Topics
![Page 33: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/33.jpg)
DB Count : SY-DBCNT
Tables customers.Select * from customers. write: / sy-dbcnt, customers-id, customers-name.endselect.
- if sy subrc <> 0. write: / ‘No Data found’.else. write: / sy-dbcnt, ‘Record found’.endif.
![Page 34: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/34.jpg)
SELECT … ORDER BY ...
Tables: spfli.Select * from spfli
Order by cityfrom. Write: / spfli-carrid, spfli-connid,
spfli-cityfrom.Endselect.
![Page 35: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/35.jpg)
SELECT … With Template
Tables customers. Select * From customers
Where name Like ‘_r%’. Write: /
- -customers id,customers name.Endselect.
![Page 36: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/36.jpg)
Aggregate Functions Data: maxdat -like sflight distance,
mindat -like sflight distance, counter type I.
Select COUNT *( ) MIN ( distance ) MAX ( distan ce )
into (counter ,min dat, maxdat) from spfli.
Write: / ‘Count :’ , counter, / ‘Min :’ , mindat, / ‘Max :’ , maxdat.
Aggregate Functions : COUNT,MIN,MAX,AVG and SUM
![Page 37: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/37.jpg)
SELECT … GROUP BY ...Data: carrid like sflight-carrid, mindat Type P Decimals 2, maxdat Type P Decimals 2.Select carrid Min( price ) Max( price ) Into (carrid, mindat, maxdat) From sflight Group by carrid. Write: / carrid, mindat, maxdat.Endselect.
อยากทราบว่า ในแต่ละสายการบ�น มี�ราคาต่��ว่ต่��าส�ดและส�งส�ดเทาไร
carrid connid fldate Price
LH 0400 20010101
150
LH 0400 20010110
145
LH 0400 20010228
130
SQ 0110 20010226
75
sflight
![Page 38: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/38.jpg)
Sub Query
tables customers.select * from customers where id <> 1 and city = ( select city from customers where id = 1 ). write: / customers-id, customers-name.endselect.
ลู�กค้�าค้นใดที่ �อยู่��เมื�องเด ยู่วก�บลู�กค้�ารหั�ส ID 1
![Page 39: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/39.jpg)
Exercise I
customers-id customers-name
customers-city
ห้!ามีใช้! SELECT *
![Page 40: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/40.jpg)
Exercise II
usr02-ltimeusr02-trdatusr02-bname
ห้!ามีใช้! SELECT *
![Page 41: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/41.jpg)
ABAP : Inner Join
![Page 42: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/42.jpg)
Tables Join
carrid connid cityfrom cityto distance
LH 0400 NY BK 100
LH 0402 BK NY 540
SQ 0110 SQ BK 250
carrid connid fldate price
LH 0400 20010101
150
LH 0400 20010110
145
LH 0400 20010228
130
SQ 0110 20010226
75
sflightspfli
![Page 43: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/43.jpg)
Tables Join
Question: Select carrid, connid and cityto from spfli and fldate,price from sflight where carrid = ‘LH’
spfli-carrid spfli-connid sflight-fldate spfli-cityto sflight-price
เง#�อนไข : ให้!แสดงข!อมี�ลเฉพาะสายการบ�น ‘LH’ เทาน�'น
![Page 44: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/44.jpg)
Standard SQL
Select spfli.carrid, spfli.connid, sflight.fldate, sflight.price From spfli, sflight Where spfli.carrid = sflight.carrid and spfli.connid = sflight.connid and
spfli.carrid = ‘LH’;
![Page 45: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/45.jpg)
Tables Join Methods Nested select statement Internal table View Inner join of Select statement
![Page 46: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/46.jpg)
Nested Select Statement
Tables: spfli,sflight.Select * from spfli where carrid = ‘LH’. Select * from sflight where carrid = spfli-carrid and connid = spfli-connid. Write: / spfli-carrid, spfli-connid, sflight-fldate, sflight-price. Endselect.Endselect.
![Page 47: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/47.jpg)
Open SQL – Inner JoinTables: spfli,sflight.Select spfli~carrid spfli~connid sflight~fldate spfli~cityto
sflight~price into (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-
price) from spfli inner join sflight on spfli~carrid = sflight~carrid and spfli~connid = sflight~connid where spfli~carrid = ‘LH’. Write: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price.Endselect.
![Page 48: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/48.jpg)
Open SQL – Inner JoinTables: A,B.Select A~a B~b B~c into (A-a,B-b,B-c) from A inner join B on A~b = B~b. Write: / A-a,B-b,B-c.Endselect.
a ba1 b1
a2 b2
Table : A
b cb1 c1
b2 c2
b3 c3
Table : B
A-a B-b B-c
![Page 49: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/49.jpg)
Open SQL – Inner Join
a ba1 b1
a2 b2
Table : Ab cb1 c1
b2 c2
b3 c3
Table : B
A~a B~b B~ca1 b1 c1
a2 b2 c2
Single Result Table(Result set)
Select …
inner join..
Endselect.
Database
Server
Application Server
1
2
![Page 50: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/50.jpg)
Open SQL – Alias Table Name
Tables: spfli,sflight.Select a~carrid a~connid b~fldate a~cityto b~price into (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-
price) from spfli as a inner join sflight as b on a~carrid = b~carrid and a~connid = b~connid where a~carrid = ‘LH’. Write: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-
price.Endselect.
![Page 51: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/51.jpg)
Inner Join/Outer Join Example
id
name city tel
1 John New York 111111
2 Peter London 222222
3 David Singapore
432555
4 Micheal Bangkok 234111
p_id prod_name on_hand
A1 Pen 100
A2 Pencil 125
B1 Ruler 80
X1 Tape 120
Y1 CD 99
cust_id prod_id sale_date
qty sale_id
1 A1 20020318
10 01
1 A2 20020318
50 01
3 X1 20020321
90 02
sale_id name
01 Somchai
02 Pipop
ZPRODUCTS
ZSALES
ZSALEREPS ZCUSTOMERS
![Page 52: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/52.jpg)
Open SQL – Inner Join
REPORT ZINNERJOIN01 .TABLES: ZCUSTOMERS,ZSALES.SELECT A~NAME B~PROD_ID INTO (ZCUSTOMERS-NAME,ZSALES-PROD_ID) FROM ZSALES AS B INNER JOIN ZCUSTOMERS AS A ON B~CUST_ID = A~ID. WRITE: / ZCUSTOMERS-NAME,ZSALES-PROD_ID.ENDSELECT.
![Page 53: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/53.jpg)
Open SQL – Inner Join > 2 Tables
Tables: A,B,C.Select A~a B~c C~y into (A-a,B-c,C-y) from A inner join B on A~b = B~b inner join C on C~x = B~c. Write: / A-a,B-c,C-y.Endselect.
a b… …
Table : A
b c… ...
… ...
… …
Table : B
x y… ...
Table : CA-a B-c C-y
![Page 54: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/54.jpg)
Open SQL – Inner Join > 2 Tables
REPORT ZINNERJOIN02 .TABLES: ZCUSTOMERS,ZPRODUCTS,ZSALES.SELECT A~NAME C~PROD_NAME B~QTY INTO (ZCUSTOMERS-NAME, ZPRODUCTS-PROD_NAME, ZSALES-QTY) FROM ZSALES AS B INNER JOIN ZCUSTOMERS AS A ON B~CUST_ID = A~ID INNER JOIN ZPRODUCTS AS C ON C~P_ID = B~PROD_ID. WRITE: / ZCUSTOMERS-NAME,ZPRODUCTS-PROD_NAME,ZSALES-
QTY.ENDSELECT.
![Page 55: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/55.jpg)
Exercise
List customers who buy product from company as following fields:
zcustomers-id zcustomers-name zsales-sale_date zproducts-prod_name zsales-qty zsalereps-name
![Page 56: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/56.jpg)
Exercise : User Master
USR02-BNAME USR02-TRDAT ADCP-TEL_NUMBER
USR02
USR21
ADCP
BNAME
PERSNUMBER
ADDRNUMBER
Tables Relationship
![Page 57: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/57.jpg)
ABAP : Outer Join
![Page 58: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/58.jpg)
Open SQL – Outer JoinREPORT ZOUTERJOIN .TABLES: ZCUSTOMERS,ZSALES.SELECT A~NAME B~PROD_ID INTO (ZCUSTOMERS-NAME,ZSALES-PROD_ID) FROM ZCUSTOMERS AS A LEFT OUTER JOIN
ZSALES AS B ON A~ID = B~CUST_ID. WRITE: / ZCUSTOMERS-NAME,ZSALES-PROD_ID.ENDSELECT.
A~NAME B~PROD_ID
John A1
John A2
Peter
David X1
Micheal
Single Result Table
![Page 59: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/59.jpg)
Exercise
List customers name who do not buy any product from company
![Page 60: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/60.jpg)
Sub Query
REPORT ZSUBQUERY .tables: zcustomers.select * from zcustomers as a where not exists ( select * from zsales as b where b~cust_id = a~id ). write: / zcustomers-name.endselect.
ลู�กค้�าชื่��ออะไรที่ �ไมื�ได�ซื้� อส!นค้�าจากเรา มื ใค้รบ�าง
![Page 61: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/61.jpg)
Internal Table
![Page 62: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/62.jpg)
Data Objects in ABAPData Objects in ABAP
Memory Space
Structure
Table Structure Internal Table
Variable
Constants<Field-symbols>
![Page 63: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/63.jpg)
INTERNAL TABLEFlight (Structure)
Carrid Connid Date Price
Internal TableFlight (Internal Table)
Carrid Connid Date Price
Header Line
![Page 64: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/64.jpg)
Structure
Data: Begin of flight,carrid -like sflight carrid,connid -like sflight connid,date -like sflight fldate,price -like sflight price.
Data: End of flight.
- flight carrid = ‘LH’.
Write: -/ flight carrid.
![Page 65: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/65.jpg)
INTERNAL TABLEData: begin of tab occurs 10,
carrid like sflight-carrid,connid like sflight-connid,fldate like sflight-fldate,price like sflight-price.
Data end of tab.
![Page 66: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/66.jpg)
USING ABAP DICTIONARY STRUCTURE
Data: begin of tab occurs 0.Include structure sflight.
Data end of tab.
![Page 67: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/67.jpg)
INTERNAL TABLE USING LIKE
Data tab LIKE sflight OCCURS 0 WITH HEADER LINE.
![Page 68: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/68.jpg)
FILLING INTERNAL TABLE (APPEND)
Tables sflight.Data flight like sflight occurs 0 with header line.Select * from sflight. Move sflight to flight. Append flight.Endselect.
![Page 69: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/69.jpg)
Standard Key of Internal Table
Data: begin of tab occurs 0, f1 type C, f2 type I, f3 type N, f4 type P, end of tab.
f1 f2 f3 f4
tab
![Page 70: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/70.jpg)
Reading Data From Internal Table
0Data tab like sflight occurs with header line. ** **** ******* **** ***** ***.** **-***** = 0. ** ****. - *** -******: / , . .Else. Write: / ‘No Data’.Endif.
![Page 71: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/71.jpg)
Access Database Without Internal Table
![Page 72: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/72.jpg)
Access Database Using Internal Table
![Page 73: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/73.jpg)
Reading Data From Internal Table****: begin of ****** *0 , id like customers-id, name like customers-name, end of tab.
Select id name from customers **** ***** ***.If sy-subrc = 0. Loop at tab. - Write: / tab id, tab-name. Endloop.else. Write: / ‘ ’ .Endif.
![Page 74: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/74.jpg)
Exercise I : Change
Using Internal Table
![Page 75: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/75.jpg)
SORTING INTERNAL TABLE (SORT)
Sort flight.Sort flight by price fldate.Sort flight by price ascending
fldate descending.
![Page 76: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/76.jpg)
Data tab like spfli occurs 0 with header line.
Select * from spfli into table tab.Sort tab by cityfrom.…Loop at tab. write: / tab-carrid, tab-connid,tab-cityfrom.Endloop.
SORTING INTERNAL TABLE
![Page 77: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/77.jpg)
PROCESSING INTERNAL TABLE...
Loop at flight. - -Write: / flight carrid, flight connid.Endloop.
Loop at flight where carrid = ‘LH’. -Write: / flight carrid, -flight connid.Endloop. Loop at flight from 1 to 10. Write: / -sy tabix , -flight carrid, -flight connid.Endloop.
![Page 78: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/78.jpg)
Internal Table Template Condition
...loop at tab where name cp ‘+r*’....
![Page 79: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/79.jpg)
Reading Single Record...
Sort flight by carrid connid fldate. Read table flight
with key c arrid = ‘LH’ c onnid = ‘0400’ fldate = ‘19990201’ Binary Search.
- if sy subrc = 0. - -write : / flight carrid,flight connid,
flight-fldate, -flight price. endif.
![Page 80: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/80.jpg)
Reading Single Record using Index
... Read table flight index 3.
- If sy subrc = 0. -write: / flight carrid, flight-connid.
Endif.
![Page 81: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/81.jpg)
CHANGING INTERNAL TABLE
...Delete flight index 5.Delete ffffff f ffff ffffff f fff ff
- flight carrid = ‘XX’.flight-price = 100.… fffff ff1 .
![Page 82: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/82.jpg)
DELETING INTERNAL TABLE
Clear flight.
Refresh flight.
Free flight.
DATA flight LIKE sflight occurs 0 with header line.
![Page 83: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/83.jpg)
Total Record of Internal TableTotal Record of Internal Table
Data: line_count type i.Data tab like sflight occurs 0 with header li
ne.Select * from sflight into table tab.Describe table tab lines line_count.Write: / line_count.
![Page 84: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/84.jpg)
Exercise I
![Page 85: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/85.jpg)
Internal Table Processing
Data tab like spfli occurs 0 with Header line.
…Select * from spfli appending table tab where carrid = ‘LH’.
![Page 86: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/86.jpg)
SELECT … INNER JOIN
REPORT ZINNERJOIN01 .TABLES: ZCUSTOMERS,ZSALES.SELECT A~NAME B~PROD_ID INTO (ZCUSTOMERS-NAME,ZSALES-PROD_ID) FROM ZSALES AS B INNER JOIN ZCUSTOMERS AS A ON B~CUST_ID = A~ID. WRITE: / ZCUSTOMERS-NAME,ZSALES-PROD_ID.ENDSELECT.
![Page 87: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/87.jpg)
Inner Join into Internal Table
REPORT ZJOIN01 .DATA: begin of tab occurs 0, name like zcustomers-name, prod_id like zsales-prod_id, end of tab. SELECT A~NAME B~PROD_ID INTO TABLE tab FROM ZSALES AS B INNER JOIN ZCUSTOMERS AS A ON B~CUST_ID = A~ID.…LOOP AT tab. WRITE: / TAB-NAME,TAB-PROD_ID.ENDLOOP.
![Page 88: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/88.jpg)
Internal Table Without Header LineDATA tab LIKE customers OCCURS 0.
DATA wa LIKE customers.
…
LOOP AT tab INTO wa.
WRITE: / wa-id, wa-name.
ENDLOOP.
![Page 89: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/89.jpg)
Internal Table Declaration
DATA tab TYPE TABLE OF customers.
DATA wa LIKE LINE OF customers.
…
![Page 90: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/90.jpg)
ABAP Practice
![Page 91: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/91.jpg)
Database Table Processing
INSERT UPDATE MODIFY DELETE
Database
![Page 92: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/92.jpg)
Insert (Table)
Tables customers.- customers id = ‘999’.- customers name = ‘Test’.
Insert customers. - if sy subrc <> 0.
****** * ***** ******* ******** endif.
![Page 93: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/93.jpg)
Update Statement
Tables customers.Select single * from customers
where id = 1.If sy-subrc = 0. customers-name = ‘John’. update customers.Endif. Update customers
set name = ‘John’ where id = 1.
![Page 94: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/94.jpg)
Update Statement
Data wa like ****** ****wa- 1id = ‘ ’.wa-nam e = ‘Test No 1’.wa-city = ‘Bangkok’.update customers from wa*If sy-subrc <> 0. write: / ‘Data not found’.Endif.
![Page 95: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/95.jpg)
Modify Statement
Tables customers.- customers id = ‘1’.- customers name = ‘Test No 1’.
* ***** ****** ****
![Page 96: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/96.jpg)
Deleting Database Table Entries
Tables customers.- customers id = ‘1’.
Delete customers.
Delete customers From Tabledelcustomers.
Delete From customers Where city = ‘ Bangkok**
![Page 97: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/97.jpg)
Exercise II
![Page 98: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/98.jpg)
Exercise II
usr02-ltimeusr02-trdatusr02-bname
1. ห้!ามีใช้! SELECT * 2. ใช้! Internal Table
![Page 99: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/99.jpg)
Exercise III
![Page 100: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/100.jpg)
Tables Relationship for User Master
USR02-BNAME USR02-TRDAT ADCP-TEL_NUMBER
USR02
USR21
ADCP
BNAME
PERSNUMBER
ADDRNUMBER
Tables Relationship
![Page 101: Open SQL & Internal Table](https://reader036.vdocument.in/reader036/viewer/2022081412/54531f96af7959bd2b8b6a5e/html5/thumbnails/101.jpg)
Exercise III : User Master
usr02-bname
usr02-trdat
adcp-tel_number
ใช้! Internal Table