Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Direct Query

Mit dem Befehl DIRECT QUERY können Sie Tabellen über eine ODBC- oder OLE DB-Verbindung aufrufen, und zwar mithilfe der Funktion Direct Discovery.

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 Direct Discovery-Daten verwendet werden.

InformationshinweisDer Befehl DIRECT QUERY kann keine DISTINCT- oder GROUP BY-Bedingungen enthalten.

Mithilfe des Schlüsselworts MEASURE können Sie Felder definieren, die Qlik Sense 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 einer Visualisierung 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. Direct Discovery generiert bei Bedarf datenbankgeeignete Abfragen.

Eine native Datenquellsyntax 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"')
InformationshinweisDie folgenden Begriffe werden als Schlüsselwörter verwendet und können demnach nicht als Spalten- oder Feldnamen verwendet werden, ohne in Anführungszeichen gesetzt zu werden: and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

Argumente:  

ArgumentBeschreibung
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 Qlik Sense-Feldnamen verwendet. Oder eine Feldspezifikation kann ein Feldalias sein: In diesem Fall erhält eine Datenbankformel oder ein Spaltenname einen Qlik Sense-Feldnamen.

Direct Discovery-Feldlisten

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-Klauseln der Datenbank wird hier nicht definiert, jedoch sind die meisten „relationalen Formeln“ für SQL zulässig, darunter Funktionsaufrufe, der LIKE-Operator für Strings, IS NULL und IS NOT NULL sowie IN. 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 eine Datenbanktabelle mit dem Namen TableName verwendet, die die Felder Dim1, Dim2, Num1, Num2 und Num3 enthält.Dim1 und Dim2 werden in den Qlik Sense Datensatz geladen.

DIRECT QUERY DIMENSTION Dim1, Dim2 MEASURE Num1, Num2, Num3 FROM TableName ;
 

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 aggregiert, aber gezählt werden: count(Dim1).

InformationshinweisDIRECT QUERY-Befehle werden direkt in den Skript-Editor geschrieben. Um den Aufbau von DIRECT QUERY-Befehlen zu vereinfachen, können Sie einen SELECT-Befehl aus einer Datenverbindung generieren und das generierte Skript anschließend entsprechend einem DIRECT QUERY-Befehl abändern.
Beispielsweise kann der SELECT-Befehl

SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;


zu folgendem DIRECT QUERY-Befehl geändert werden:

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!