MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access - Code Archiv
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 18.03.2013, 10:04   #1
ebs17
MOF Guru
MOF Guru
Standard Grundlagen - SQL ist leicht (2) - Alias

SQL ALIAS

Objekte benötigen zur eindeutigen Erkennung und Verarbeitung Namen, so auch Felder (Spalten), Tabellen und (Unter)Abfragen in SQL-Anweisungen. Mit einem Alias kann man einem neu geschaffenen Element (z.B. berechnetes Feld) gezielt einen gewünschten Namen geben, und man kann vorhandene Elemente umbenennen, um verschiedene Wirkungen zu erzielen.
Code:

(irgendwas) AS Aliasname
Spaltenalias
Mit einem Spaltenalias kann man Spalten benennen bzw. umbenennen, z.B. um aus kryptischen Tabellenfeldnamen verständliche Feldbezeichner erzeugen, für Exporte Felder umbenennen oder berechneten Feldern zzgl. aggregierten Feldern eine Bezeichnung zuweisen.
Code:

SELECT 
    ma_nname AS Mitarbeiternachname, 
    ma_std * 23.45 AS Tagesverdienst, 
    „Vorbild“ AS Bemerkung 
FROM 
    tblMitarbeiter
Spaltenaliase helfen kurz gesagt bei der Organisation der ausgegebenen Daten.

Tabellenalias
Dazu wird ein Alias direkt nach dem Tabellennamen in der FROM-Klausel angegeben und kann dann in den weiteren Abfrageteilen genutzt werden. Als Tabellenalias wird man überwiegend eine Kurzbezeichnung wählen, da er nach außen auch nicht in Erscheinung tritt. Das Schlüsselwort „AS“ kann man weglassen, der Abfrageditor in Access wird es, wenn er wirksam wird, i.d.R. hinzufügen. Ein Tabellenalias kann auch im Abfrageeditor erzeugt werden, wenn man die betreffende Tabelle markiert und das Eigenschaftsblatt öffnet.

Vorteile:

- Übersicht durch Kürze
In der SQL-Anweisung spart man Schreibarbeit, da man Abfrageteile oder ganze Abfragen nicht nur per Assistent erzeugen kann oder wird, sondern durchaus auch per Hand. SQL-Anweisungen werden nicht nur kürzer, sondern auch besser lesbar. Besonders spürbar wird das, wenn sehr lange und ähnliche Tabellennamen vorkommen.
Gegenüberstellung der gleichen Abfrage:
Code:

SELECT 
    tblTabellenfeldnameMitUnterstrich.Feld1, 
    tblTabellenfeldnameOhneUnterstrich.Feld2, 
    tblTabellenfeldnameMitUnterstrich.Feld3 
FROM 
    tblTabellenfeldnameMitUnterstrich 
        INNER JOIN tblTabellenfeldnameOhneUnterstrich 
        ON tblTabellenfeldnameMitUnterstrich.Schluessel = tblTabellenfeldnameOhneUnterstrich.Schluessel

SELECT 
    M.Feld1, 
    O.Feld2, 
    M.Feld3 
FROM 
    tblTabellenfeldnameMitUnterstrich AS M 
        INNER JOIN tblTabellenfeldnameOhneUnterstrich AS O 
        ON M.Schluessel = O.Schluessel
Mit der Aliasvariante hat man einen höheren Änderungskomfort, wenn man z.B. eine Tabellenbezeichnung ändern muss.

- Funktionalität
Wenn man in einer Abfrage eine Unterabfrage erzeugt und diese verwendet, muss sie als "Tabelle" einen Namen bekommen.
Beispiel: In einer Kontakttabelle soll für jeden Kunden der letzte Kontakttermin ermittelt werden. Dabei sollen aber alle Felder des Kontaktes angezeigt werden:
Code:

SELECT 
    K.KundeID, 
    K.Kontaktdatum, 
    K.Anlass, 
    K.BetreuerID 
FROM 
    tblKontakte AS K 
        INNER JOIN 
            (
                SELECT 
                    KundeID, 
                    Max(Kontaktdatum) AS LetzterKontakt 
                FROM 
                    tblKontakte 
                GROUP BY 
                    KundeID 
            ) AS A 
            ON K.KundeID = A.KundeID 
                AND 
            K.Kontaktdatum = A.LetzterKontakt
Bei einer Verknüpfung einer Tabelle mit sich selber (SELF JOIN) muss zur Unterscheidung der Instanzen eine namentliche Unterscheidung vorgenommen werden.
Beispiel: In einer Tabelle mit Zählerständen soll jeweils die Differenz zwischen zwei aufeinanderfolgenden Datensätzen ermittelt werden:
Code:

SELECT 
    T1.Ablesedatum, 
    T1.Stand - T2.Stand AS Differenz 
FROM 
    tblZaehlerstaende T1 
        LEFT JOIN tblZaehlerstaende T2 
        ON T1.ID = T2.ID + 1

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende

Geändert von Arne Dieckmann (10.04.2013 um 18:31 Uhr). Grund: Korrekturwunsch per PN gemeldet
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.