Select Tabellenalias "as"

Aus SAP-Wiki
Wechseln zu:Navigation, Suche

Schlüsselbefehl Select.

Es spart etwas Schreibaufwand in einem Inner-Join, wenn man für die verknüpften Tabellen jeweils einen Platzhalter mit "<tabellenname> as .." angibt.

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 Alias, 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

Wann Alias, wann nicht

  • Man sollte jedoch nicht übertreiben bei der Verwendung der Alias. Es kann einen Select schwerer lesbarer machen, wenn die Alias nicht intuitiv erfassbar sind.
  • Bei kurzen Tabellennamen wie "vbak", "likp", "ekko" etc. sollte man meiner Meinung nach auf Aliase verzichten. Es ist nicht das Ziel möglichst kurzen Code zu schreiben, sondern einen schnell erfassbaren verständlichen Code.
  • Sehr praktisch ist es, 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.