Direct Query

Med DIRECT QUERY-satsen kan du komma åt tabeller genom enODBC eller OLE DB-koppling med hjälp av funktionen Direct Discovery.

Syntax:  

DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist[DETAIL fieldlist] FROM tablelist

[WHERE where_clause]

 

Nyckelorden DIMENSION, MEASURE och DETAIL kan användas i valfri ordning.

Nyckelordssatserna DIMENSION och FROM krävs i alla DIRECT QUERY-satser. Nyckelordet FROM måste komma efter nyckelordet DIMENSION.

Fälten som anges direkt efter nyckelordet DIMENSION laddas i minnet och kan användas för att skapa associationer mellan data i minnet och Direct Discovery-data.

Note: DIRECT QUERY-satsen får inte innehålla DISTINCT- eller GROUP BY-satser.

Med hjälp av nyckelordet MEASURE kan du definiera fält som Qlik Sense kan tolka på "metanivå". Faktiska data för ett measure-fält finns enbart i databasen under dataladdningsprocessen, och hämtas vid behov utifrån de diagramuttryck som används i en visualisering.

Normalt bör fält med diskreta värden som ska användas som dimensioner laddas in med nyckelordet DIMENSION, medan tal som ska användas i aggregeringar enbart bör markeras med nyckelordet MEASURE.

DETAIL fälten innehåller information eller detaljer, exempelvis fälten ”Comment”, som en användare kan välja att visa i en detaljerad tabellbox. DETAIL-fält kan inte användas i diagramuttryck.

DIRECT QUERY-satsen är utformad för att vara datakällsneutral för datakällor som har stöd för SQL. Tack vare detta kan samma DIRECT QUERY-sats användas för olika SQL-databaser utan att behöva ändras. Direct Discovery genererar frågor lämpliga för databasen när så krävs.

Programegen syntax för datakällan kan användas när användaren vet vilken databas frågan ska skickas till och vill utnyttja databasspecifika komplement till SQL. Programegen syntax för datakällan stöds:

  • Som fältuttryck i DIMENSION- och MEASURE-satser
  • Som innehåll i WHERE-satsen

Exempel:

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"')
Note: Följande termer används som nyckelord och kan inte användas som kolumn- eller fältnamn utan att placeras inom citationstecken: and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

Arguments:  

Argument Beskrivning
fieldlist

En kommaavgränsad lista med fältspecifikationer, fieldname {, fieldname}. En fältspecifikation kan vara ett fältnamn, och i så fall används samma namn som databaskolumnens namn och Qlik Sense-fältnamn. En fältspecifikation kan även vara ett ”fältalias”. Då får ett databasuttryck eller ett kolumnnamn ett Qlik Sense-fältnamn.

Direct Discovery fältlistor

tablelist

En lista över namnen på tabeller eller vyer i databasen som data kommer att läsas in från. Normalt är det vyer som innehåller en JOIN som utförs på databasen.

where_clause

Den fullständiga syntaxen för WHERE-databassatser anges inte här, men de flesta ”SQL- relationsuttryck” är tillåtna, inklusive användning av funktionsanrop, LIKE-operatorn för strängar, IS NULL och IS NOT NULL och IN. BETWEEN ingår inte.

NOT är en unär operator i motsats till en modifierare för vissa nyckelord.

Exempel:

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)

Det sista exemplet kan inte skrivas som:

WHERE X NOT in (1,2,3)

Example:  

I det här exemplet används en databastabell som heter TableName och innehåller fälten Dim1, Dim2, Num1, Num2 och Num3.Dim1 och Dim2 laddas in i datauppsättningen Qlik Sense.

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

Dim1 och Dim2 blir tillgängliga att använda som dimensioner. Num1, Num2 och Num3 blir tillgängliga för aggregeringar. Dim1 och Dim2 är också tillgängliga för aggregeringar. Vilken typ av aggregeringar Dim1 och Dim2 kan användas för beror på deras datatyper. I många fall innehåller till exempel DIMENSION-fält strängdata som namn eller kontonummer. Dessa fält kan inte läggas ihop, men de kan räknas: count(Dim1).

Note: DIRECT QUERY-satser skrivs direkt i Dataimport. För att underlätta vid konstruktionen av DIRECT QUERY-satser kan du generera en SELECT-sats från en dataanslutning och sedan redigera det genererade skriptet för att ändra det till en DIRECT QUERY-sats.
Till exempel kan SELECT-satsen:

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


ändras till följande DIRECT QUERY-sats:

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?