Importieren einer Teilmenge der Daten unter Verwendung von SQL

Wenn Sie Daten mit ODBC aus einer Datenbank importieren, können Sie SQL-Ausdrücke (Structured Query Language) verwenden, um nur die gewünschten Datensätze (Zeilen) zu importieren. SQL wird in vielen Datenbankanwendungen verwendet. Minitab verarbeitet den SQL-Ausdruck nicht, sondern übermittelt ihn lediglich an die Datenbank.

Auswählen der zu importierenden Felder

  1. Wählen Sie Datei > Datenbank abfragen (ODBC) aus.
  2. Wählen Sie eine Datenquelle aus. Wählen Sie bei Aufforderung die Datenbank aus.
  3. Wählen Sie im Dialogfeld „Datenbank abfragen (ODBC)“ in der Dropdownliste Verfügbare Tabellen die Tabelle aus, die Sie abfragen möchten.
  4. Verschieben Sie mit Hilfe der Pfeilschaltfläche die zu importierenden Felder in das Feld Ausgewählte Felder.
  5. Klicken Sie auf Zeilen verwenden.
  6. Geben Sie im Feld Zeilen verwenden einen Ausdruck ein, der die zu importierenden Datensätze definiert. Diese Datensätze werden in Minitab zu Zeilen. Ausdrücke beginnen mit dem Schlüsselwort „where“ und enthalten Feldnamen, logische Operatoren (wie „And“ und „=“), SQL-Funktionen und Werte. Weitere Informationen zu den unterstützten SQL-Funktionen finden Sie in der Dokumentation Ihrer Datenbankanwendung.
  7. Klicken Sie in den einzelnen Dialogfeldern auf OK.

Richtlinien für die Syntax von SQL-Ausdrücken

Die Syntaxregeln variieren zwischen den ODBC-Treibern für die verschiedenen Datenbankanwendungen. Wenn Sie Unterstützung bei der Syntax benötigen, wenden Sie sich an Ihren Datenbankadministrator.

Textwerte
Die Syntax für Textwerte muss wie folgt den Syntaxregeln für den ODBC-Treiber folgen:
  • Für Microsoft ® Access und viele andere Datenbanken müssen Textwerte in einfache Hochkommas eingeschlossen werden (z. B. 'Mannheim').
  • Schließen Sie Textwerte für Oracle- oder SQL Server-Datenbanken jeweils in zwei doppelten Anführungszeichen ein (z. B. ""Mannheim"").
Numerische Werte
Schließen Sie Zahlen (z. B. 300) nicht in Sonderzeichen ein.
Datums-/Uhrzeitwerte
Schließen Sie Datumsangaben für Access- und dBASE-Datenbanken in Rautenzeichen ein (z. B. #12/31/2016#). Die Syntax für andere Datenbanken können Sie der Dokumentation zur betreffenden Anwendung entnehmen. Anstatt ein konkretes Datum einzugeben, können Sie auch eine Datums-/Uhrzeitfunktion verwenden.
Feldnamen
Die verwendeten Feldtrennzeichen variieren je nach ODBC-Treiber. Wenn Sie einen Feldnamen eingeben, indem Sie ihn im Dialogfeld „Zeilen verwenden“ aus der Liste der Felder auswählen, schließt Minitab den Feldnamen in die entsprechenden Trennzeichen für den verwendeten ODBC-Treiber ein.
Funktionen
Um anzugeben, dass es sich bei einer Funktion um eine ODBC-Funktion und nicht um eine Funktion der Datenbankanwendung handelt, aus der Sie Daten importieren, verwenden Sie geschweifte Klammern und die Buchstaben „fn“ (z. B. {fn SQRT(128)}). Wenn Sie Funktionen aus der Liste im Dialogfeld „Zeilen verwenden“ auswählen, fügt Minitab die erforderlich Syntax automatisch hinzu.
Platzhalterzeichen
Verwenden Sie als Platzhalter in allen SQL-Abfragen ein Prozentzeichen (%) anstelle eines Sternchens (*), und verwenden Sie einen Unterstrich (_) anstelle eines Fragezeichens (?).

Beispiele für SQL-Ausdrücke für Microsoft® Access

Für andere Datenbankanwendungen als Access kann eine andere Syntax gelten.

Hinweis

Diese Ausdrücke sollten nach Möglichkeit nicht aus der Tabelle kopiert und eingefügt werden. Geben Sie sie im Dialogfeld manuell ein.

Zu importierende Daten SQL-Ausdruck
Datensätze für das erste Quartal von 2017
where DATUM >= #1/1/17# And DATUM < #4/1/17#
Datensätze für seit dem 1. Januar 2010 eingestellte Mitarbeiter in der Finanzabteilung
where EINSTELLUNGSDATUM > #1/1/10# And ABT = 'Finanz'
Daten der vergangenen 30 Tage
where 'Datumsfeld' > Now() - 30
Daten von gestern
where (Format(Now-1,'mm-dd-yy')=Format(Name_des_Datumsfelds,'mm-dd-yy'))

Mögliche Gründe für das Fehlschlagen einiger SQL-Funktionen

SQL verfügt über ODBC-Funktionen, mit denen Sie Ausdrücke erstellen können. Bestimmte ODBC-Treiber unterstützen jedoch u. U. nicht alle ODBC-Funktionen. Der Microsoft® Access-ODBC-Treiber unterstützt beispielsweise nicht die Funktion TIMESTAMPDIFF. Wenn in diesem Zusammenhang eine Fehlermeldung ausgegeben wird, stammt diese vom ODBC-Treiber und nicht von Minitab.

Im Folgenden finden Sie ein Beispiel für die Fehlermeldung, die ausgegeben wird, wenn Sie ODBC mit der Funktion TIMESTAMPDIFF verwenden, um Microsoft® Access abzufragen:
"SQL-Fehlerstatus: 37000, Systemeigener Fehlercode: FFFFF3E2, ODBC-Fehler: [Microsoft] [ODBC Microsoft® Access-Treiber] Undefinierte Funktion 'TIMESTAMPDIFF' in Ausdruck."

Access bietet eine alternative Funktion für TIMESTAMPDIFF. Der Name dieser alternativen Funktion lautet DATEDIFF( ). Mit der folgenden Abfrage werden drei Spalten aus einem Mitarbeiterdatensatz abgerufen. Die erste Spalte enthält die Anzahl vergangener Tage vom ersten Beschäftigungstag des Mitarbeiters bis heute. Die zweite und dritte Spalte enthalten jeweils den Namen und das Einstellungsdatum des Mitarbeiters.

ODBC; Connect "DSN=Test;DBQ=Q:\Trumparc.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=msl;SystemDB=Q:\secured.mdw;UID=msl;"; SQLString "SELECT DateDiff('y', `Einstellungsdatum`, Now()),`Name`,`Einstellungsdatum` FROM `Mitarbeiter`".