23
Otto-von-Guericke-Universität Magdeburg Gamal Kassem Übung 7 Übung 7 Reports mit Datenbankzugriff Reports mit Datenbankzugriff

Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Embed Size (px)

Citation preview

Page 1: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Übung 7Übung 7Reports mit DatenbankzugriffReports mit Datenbankzugriff

Page 2: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Open-SQLOpen-SQL

Data Manipulation Languge (DML) Data Defintion Language (DDL) Data Control Language (DCL)

Page 3: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

SELECT-Anweisung und SELECT-Anweisung und SELECT-SchleifeSELECT-Schleife

SELECT-AnweisungSELECT SINGLE was [Auswahlfelder der Datenbanktabelle ]FROM woher [Datenbanktabelle] INTO wohin [Ziel]

WHERE Bedingung . SELECT- Schleife

SELECT was [Auswahlfelder der Datenbanktabelle ]FROM woher [Datenbanktabelle] INTO wohin [Ziel]

WHERE Bedingung ..............ENDSELECT .

Page 4: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Ziel des INTO-KlauselZiel des INTO-Klausel

Flache Arbeitsbereich: Bei der Selektion einer einzelnen Zeile muß der Zielbereich flach sein– SELECT... INTO [CORRESPONDING FIELDS OF] <wa>

Einzelfelder– SELECT... INTO (<f 1>, <f 2>,...)

Interne Tabellen – SELECT... INTO [CORRESPONDING FIELDS OF] TABLE <itab>                           

Page 5: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Komplexe TypenKomplexe Typen

Strukturen- Geschachtelte und nicht-geschachtelte Strukturen. - Flache und tiefe Strukturen.

Interne Tabellen

Page 6: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

StrukturenStrukturen

TYPES|DATA: BEGIN OF structure,

k1 {TYPE type|LIKE dobj}..,

k2 {TYPE type|LIKE dobj}..,

.......

kn {TYPE type|LIKE dobj}..,

END OF structure.

Page 7: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

TabellenarbeitsbereichTabellenarbeitsbereich

DATA wa_dbtab TYPE|LIKE dbtab.

Dabei ist dbtab eine Datenbanktabelle, ein

View oder eine flache Struktur.

Page 8: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Interne TabellenInterne Tabellen

den Zeilentyp, der ein beliebiger elementarer Typ, ein Referenztyp oder komplexer Datentyp sein kann.

einen Schlüssel, welcher der Identifikation von Tabellenzeilen dient. Er läßt sich aus den elementaren Feldern der Zeilen aufbauen. Wir unterscheiden weiterhin zwischen eindeutigen und nicht eindeutigen Schlüsseln.

TYPES|DATA <t> TYPE|LIKE <dbtab>

OF <linetype> [WITH <key>].

Page 9: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Standard-TabellenobjekteStandard-Tabellenobjekte

Kurzformen der DATA-Anweisung

DATA <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>.

DATA <itab> TYPE|LIKE [STANDARD] TABLE OF <linetype>                       WITH DEFAULT KEY.

Diese beiden DATA-Anweisungen werden vom System automatisch zur folgenden Anweisung vervollständigt:

DATA <itab> TYPE|LIKE STANDARD TABLE OF <linetype>                       WITH NON-UNIQUE DEFAULT KEY.

Page 10: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

SELECT SINGLESELECT SINGLE

DATA wa_kunden LIKE zkunden .

SELECT SINGLE *FROM zkundenINTO wa_kundenWHERE kundennr = '124456' .WRITE: wa_kunden-name , wa_kunden-vorname .

Page 11: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

SELECT SINGLESELECT SINGLE

DATA wa_name LIKE zkunden-name, wa_vorname LIKE zkunden-vorname . SELECT SINGLE name vornameFROM zkundenINTO (wa_name , wa_vorname)WHERE kundennr = '124456' .WRITE: wa_name , wa_vorname .

Page 12: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

SELECT-SchleifeSELECT-Schleife

DATA: wa_name LIKE zkunden-name,wa_vorname LIKE zkunden-vorname .

SELECT name vornameFROM zkundenINTO (wa_name , wa_vorname)WHERE wohnort = 'Regensburg' . WRITE:/ wa_name , wa_vorname .ENDSELECT.

Page 13: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

APPEND, LOOPAPPEND, LOOP

APPEND wa TO itable

LOOP AT itable INTO wa .

< Bearbeiten des Datensatzes im Arbeitsbereich >

ENDLOOP.

Page 14: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Daten aus Datenbanktabellen Daten aus Datenbanktabellen lesenlesen

DATA: wa_kunden LIKE zkunden,it_kunden LIKE TABLE OF zkunden.

SELECT name vornameFROM zkundenINTO CORRESPONDING FIELDS OF TABLE it_kundenWHERE wohnort = 'Regensburg' .LOOP AT it_kunden INTO wa_kunden. WRITE :/ wa_kunden-name, wa_kunden-vorname.ENDLOOP.

Page 15: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Aggregate einzelner Spalten lesenAggregate einzelner Spalten lesen

MAX: liefert den Maximalwert der Spalte MIN: liefert den Minimalwert der Spalte AVG: liefert den Durchschnittswert der Spalte SUM: liefert die Summe der Spalte COUNT: zählt Werte oder Zeilen wie folgt

– COUNT( DISTINCT <si>) liefert die Anzahl unterschiedlicher

Werte in der Spalte <s i >.

– COUNT( *) liefert die gesamte Anzahl der Zeilen in der Ergebnismenge

Page 16: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

KlauselnKlauseln

GROUP BY, um mehrere Zeilen beim lesen in eine Zeile zu verdichten

HAVING, um Bedingungen für verdichtete Zeilen anzugeben

ORDER BY, um Zeilen beim Einlesen zu sortieren

ORDER BY <s1> [ASCENDING|DESCENDING]            <s2> [ASCENDING|DESCENDING]...

Page 17: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

BeispielBeispiel

DATA: wa_zwkn TYPE zkurse-wkn,minimum TYPE p DECIMALS 2,maximum TYPE p DECIMALS 2.select wkn min( kurs ) max( kurs )into (wa_zwkn, minimum, maximum)from zkursegroup by wkn.WRITE: / wa_zwkn, minimum, maximum.ENDSELECT.

Page 18: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

REFRESH, CLEAR, SORT, REFRESH, CLEAR, SORT, TextelementeTextelemente

REFRESH itable . CLEAR variable . (z.B. Arbeitsbereich) SORT itable BY f1 f2 ...[ASCENDING]

[DESCENDING] . Textelemente Sy-subrc Sy-index

Page 19: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Übungen

Reports mit Datenbankzugriff

Page 20: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Open-SQL: SELECT, TextelemeteOpen-SQL: SELECT, Textelemete

Erstellen Sie eine Übersicht über alle Depotkunden als Report ZREGENSBURG_**, die ihren Wohnsitz in Regensbug haben. Die Übersicht soll die Kundennummer, Name, Vorname sowie Wohnort des Kunden aus der Tabelle ZKUNDEN enthalten und nach Kundennummer aufsteigend sortiert sein.

Verwenden Sie statt feststehender Texte Textelemente. Pflegen Sie die Textelemente in deutscher Sprache. Übersetzen Sie die Textelemente ins Englische.

Page 21: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Page 22: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Kursentwicklung mit SELECT SINGLEKursentwicklung mit SELECT SINGLE

Die Wertpapierinhaber wünschen eine Aufstellung über die Kursentwicklung in ansprechender Form (siehe unten). Programmieren Sie hierzu einen Report ZKURSE**.

Page 23: Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff

Otto-von-Guericke-Universität Magdeburg

Gamal Kassem

Legen Sie in einem Report ZDEPOTPOST** eine interne Tabelle an, welche die Daten der Datenbanktabelle ZDEPOTPSTN enthält. Sortieren Sie die interne Tabelle nach der WKN aufsteigend. Innerhalb gleicher WKN sortieren Sie nach der Anzahl absteigend. Geben Sie die interne Tabelle auf dem Bildschirm aus.

Interne Tabelle, APPEND, SORT, LOOPInterne Tabelle, APPEND, SORT, LOOP