Direct Query

Med DIRECT QUERY-satsen kan du komma åt tabeller genom en ODBC 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 in i minnet och kan användas för att skapa associationer mellan data i minnet och Direct Discovery-data.

Observera: 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 QlikView 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 ett diagram.

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.

NATIVE-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. NATIVE-syntax för datakällan stöds:

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

Examples:  

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"')
Observera: 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 QlikView-fältnamn. En fältspecifikation kan även vara ett ”fältalias”. Då får ett databasuttryck eller ett kolumnnamn ett QlikView-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.

Examples:  

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 kommer att läsas in i QlikView-datauppsättningen.

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).

Observera: DIRECT QUERY-satser skrivs direkt i skriptredigeraren. För att underlätta konstruktionen av DIRECT QUERY-satser kan du generera en SELECT-sats från en datakoppling och sedan redigera det genererade skriptet till en DIRECT QUERY-sats.
Exempelvis kan satsen SELECT:

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;