Direct Query
Mit dem Befehl DIRECT QUERY können Sie Tabellen über eine ODBC- oder OLE DB-Verbindung aufrufen, und zwar mithilfe der Funktion Direkterkenntnis.
Syntax:
DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist] [DETAIL fieldlist] FROM tablelist
[WHERE where_clause]
Die Schlüsselwörter DIMENSION, MEASURE und DETAIL können in beliebiger Reihenfolge verwendet werden.
Die DIMENSION- und FROM-Schlüsselwortbedingungen sind bei allen DIRECT QUERY-Befehlen erforderlich. Das Schlüsselwort FROM muss nach dem Schlüsselwort DIMENSION stehen.
Die direkt hinter dem Schlüsselwort DIMENSION angegebenen Felder werden in den Speicher geladen und können zum Erstellen von Verknüpfungen zwischen im Speicher befindlichen und Direkterkenntnis-Daten verwendet werden.
Mithilfe des Schlüsselworts MEASURE können Sie Felder definieren, die QlikView auf "Metaebene" erkennt. Die tatsächlichen Daten eines measure-Feldes sind nur während des Ladens der Daten in der Datenbank gespeichert und werden von den Diagrammfeldern, die in einem Diagramm verwendet werden, ad hoc abgerufen.
Üblicherweise sollten Felder mit diskreten Werten, die als Dimensionen verwendet werden, mit dem Schlüsselwort DIMENSION geladen werden, wohingegen Zahlen, die nur in Aggregierungen verwendet werden, mit dem Schlüsselwort MEASURE ausgewählt werden sollten.
DETAIL-Felder beinhalten Informationen oder Details, wie z. B. Kommentarfelder, die Benutzern die detailliertere Anzeige von Daten in einer Tabellenbox ermöglichen. DETAIL-Felder können nicht als Diagrammformeln verwendet werden.
Der Befehl DIRECT QUERY ist für Datenquellen, die SQL unterstützen, datenquellenneutral. Deshalb kann derselbe DIRECT QUERY-Befehl für unterschiedliche SQL-Datenbanken unverändert verwendet werden. Direkterkenntnis generiert bei Bedarf datenbankgeeignete Abfragen.
Eine NATIVE-Datenquellensyntax kann verwendet werden, wenn der Benutzer weiß, welche Datenbank abgefragt wird und datenbankspezifische Erweiterungen auf SQL anwenden möchte. Eine NATIVE Datenquellsyntax wird unterstützt:
- Als Feldformel in DIMENSION- und MEASURE-Bedingungen
- Als Inhalt der WHERE-Bedingung
Beispiele:
DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE
NATIVE ('X % Y') AS X_MOD_Y
FROM TableName;
DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE X, Y
FROM TableName
WHERE NATIVE ('EMAIL MATCHES "\*.EDU"');
Argumente:
Argument | Beschreibung |
---|---|
fieldlist |
Eine kommagetrennte Liste von Feldspezifikationen, fieldname {, fieldname}. Eine Feldspezifikation kann ein Feldname sein: In diesem Fall wird derselbe Name für den Datenbankspaltennamen und den QlikView-Feldnamen verwendet. Oder eine Feldspezifikation kann ein Feldalias sein: In diesem Fall erhält eine Datenbankformel oder ein Spaltenname einen QlikView-Feldnamen. |
tablelist |
Eine Liste der Namen von Tabellen oder Ansichten in der Datenbank, aus denen Daten geladen werden. Üblicherweise sind dies Ansichten, die einen JOIN enthalten, der auf die Datenbank angewendet wurde. |
where_clause |
Die vollständige Syntax der WHERE-Bedingungen der Datenbank wird hier nicht definiert, jedoch sind die meisten „relationalen Formeln“ für SQL zulässig, Funktionsaufrufe, der LIKE-Operator für Strings, IS NULL und IS NOT NULL und IN eingeschlossen. BETWEEN ist nicht eingeschlossen. NOT ist ein einwertiger Operator, im Gegensatz zum Modifikator für bestimmte Schlüsselwörter. Beispiele: WHERE x > 100 AND "Region Code" IN ('south', 'west')
WHERE Code IS NOT NULL and Code LIKE '%prospect'
WHERE NOT X in (1,2,3)
Das letzte Beispiel kann nicht wie folgt geschrieben werden: WHERE X NOT in (1,2,3)
|
Beispiel:
In diesem Beispiel wird die Datenbanktabelle TableName mit den Feldern Dim1, Dim2, Num1, Num2 und Num3 verwendet.Dim1 und Dim2 werden in den QlikView-Datensatz geladen.
Dim1 und Dim2 stehen zur Verwendung als Dimensionen zur Verfügung. Num1, Num2 und Num3 stehen für Aggregierungen zur Verfügung. Dim1 and Dim2 stehen ebenfalls für Aggregierungen zur Verfügung. Die Art der Aggregierungen, für dieDim1 und Dim2 verwendet werden können, richtet sich nach ihrem Datentyp. In vielen Fällen enthalten DIMENSION-Felder z. B. String-Daten wie Namen oder Kundennummern. Diese Felder können nicht summiert, aber gezählt werden: count(Dim1).
Beispiel: Der SELECT-Befehl:
SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;
könnte in den folgenden DIRECT QUERY-Befehl geändert werden:
DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber
MEASURE
SubTotal,
TaxAmt
DETAIL
OrderDate
FROM MyDB.Sales.SalesOrderHeader;