Select Tabellenalias "as"
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Es spart etwas Schreibaufwand in einem Inner-Join, wenn man für die verknüpften Tabellen einen Platzhalter angibt.
<tabellenname> as <aliasname>
Beispiel Alias-Nutzung
Hier wird die Tabelle VBAK mit "h" (Header) und die Tabelle VBAP mit "i" (Item) stellvertretend angesprochen.
select h~vbeln, i~posnr, i~matnr into table @data(lt_vbeln) from vbak as h inner join vbap as i on i~vbeln = h~vbeln.
Alias bei Namenskonflikten von Tabellen
- Manchmal benötigt man Aliasse, wenn man in einem Select eine Tabelle für verschiedene Abfragen anspricht.
- Zum Beispiel die Partnertabellen VBPA enthält die Partnerdaten zu einem Vertriebsbeleg für verschiedene Partnerrollen und manchmal möchte man die Daten zu mehreren Partnerrollen in einem Select einlesen.
- Hier wird ein Alias für die Tabelle VBPA mit dem Namen "ag" (Auftraggeber) vergeben und einen mit dem Namen "we" (Warenempfänger).
Select vbak~vbeln ag~kunnr we~kunnr From vbak Inner join vbpa as ag on ag~vbeln = vbak~vbeln and ag~posnr = 0 and ag~parvw = 'AG' inner join vbpa as we On we~vbeln = vbak~vbeln And we~posnr = 0 And we~parvw = 'WE' Where vbak~vbeln = iv_vbeln
Abwägung Aliasnutzung
- Man sollte jedoch nicht übertreiben bei der Verwendung der Aliasse. Es kann einen Select schwerer lesbar machen, wenn die Alias nicht intuitiv erfassbar sind.
- Bei kurzen vierstelligen Tabellennamen wie "vbak", "likp", "ekko" etc. sollte man meiner Meinung nach auf Aliase verzichten. Es ist nicht das Ziel möglichst wenig Buchstaben im Code zu schreiben, sondern einen schnell erfassbaren verständlichen Code.
- Aliassee sind praktisch, wenn ein (kundeneigener) Tabellenname sehr lang ist und man mit einem Alias einen kurze schnell erfassbare Ersetzung findet. Das spart Schreibarbeit und erleichtert auch die bündige Formatierung des Codes.
- Wenn man Aliasse verwendet, sollte man auf eine intuitiv schnell erfassbare Ersetzung achten. Z. B. für die Tabellen "VBAK" und VBAP" die Aliase "K" (Kopf) und "P" (Position) oder "H" (Header) und "I" (Item).