Ga naar hoofdinhoud Ga naar aanvullende inhoud

Direct Query

Met de DIRECT QUERY-opdracht kunt u toegang verkrijgen via een ODBC- of OLE DB-verbinding met de Direct Discovery-functie.

Syntaxis:  

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

[WHERE where_clause]

 

De trefwoorden DIMENSION, MEASURE en DETAIL kunnen in willekeurige volgorde worden gebruikt.

De trefwoordclausules DIMENSION en FROM zijn vereist in alle DIRECT QUERY-opdrachten. Het trefwoord FROM moet na het trefwoord DIMENSION komen.

De velden die zijn opgegeven direct na het trefwoord DIMENSION worden in het geheugen geladen om associaties tot stand te brengen tussen gegevens in het geheugen en Direct Discovery-gegevens.

InformatieDe DIRECT QUERY-opdracht kan geen DISTINCT- of GROUP BY-clausules bevatten.

Met het trefwoord MEASURE kunt u velden definiëren waarvan QlikView zich bewust is op “metaniveau”. De feitelijke gegevens van een metingsveld bevinden zich alleen tijdens het laden van de gegevens in de database en worden op ad hoc basis opgehaald via de grafiekuitdrukkingen die worden gebruikt in een grafiek.

Gewoonlijk kunnen velden met discrete waarden die zullen worden gebruikt als dimensies het beste worden geladen met het trefwoord DIMENSION, terwijl getallen die zullen worden gebruikt in aggregaties uitsluitend zouden meten worden geselecteerd met het trefwoord MEASURE.

Velden van het type DETAIL bieden informatie of details, zoals commentaarvelden, die een gebruiker wellicht wil weergeven in een tabelvak waarbij wordt geanalyseerd op detailniveau. Velden van het type DETAIL kunnen niet worden gebruikt in diagramuitdrukkingen.

De DIRECT QUERY-opdracht is zodanig ontworpen dat deze gegevensbronneutraal is voor gegevensbronnen die SQL ondersteunen. Om die reden kan dezelfde DIRECT QUERY-opdracht ongewijzigd worden gebruikt voor verschillende SQL-databases. Direct Discovery genereert zo nodig query's voor de desbetreffende database.

Er kan gebruik worden gemaakt van NATIVE gegevensbronsyntaxis als de gebruiker weet op welke database query's moeten worden uitgevoerd en gebruik wil maken van databasespecifieke uitbreidingen van SQL. Er wordt NATIVE gegevensbronsyntaxis ondersteund:

  • Als velduitdrukkingen in DIMENSION- en MEASURE-clausules
  • Als de inhoud van de WHERE-clausule

Voorbeelden:  

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"');
InformatieDe volgende termen worden gebruikt zoals sleutelwoorden en kunnen dus niet worden gebruikt als kolom- of veldnamen zonder aanhalingstekens: and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

Argumenten:  

Argumenten voor direct query
Argument Beschrijving
fieldlist

Een door komma's gescheiden lijst met veldspecificaties, fieldname {, fieldname}. Een veldspecificatie kan een veldnaam zijn. In dat geval wordt dezelfde naam gebruikt voor de databasekolomnaam en de QlikView-veldnaam. Een veldspecificatie kan ook een "veldalias" zijn. In dat geval wordt een QlikView-veldnaam gegeven aan een database-uitdrukking of kolomnaam.

Direct Discovery-veldenlijsten

tablelist

Een lijst met de namen van tabellen of weergaven in de database waaruit gegevens worden geladen. Gewoonlijk zijn dit weergaven die een JOIN bevatten die worden uitgevoerd op de database.

where_clause

De volledige syntaxis van WHERE-clausules voor databases wordt hier niet gedefinieerd, maar de meeste SQL-uitdrukkingen zijn toegestaan, met inbegrip van het gebruik van functieaanroepen, de LIKE-operator voor tekenreeksen, IS NULL en IS NOT NULL, en IN. BETWEEN zijn niet inbegrepen.

NOT is een unaire operator, in tegenstelling tot een modificatie voor bepaalde trefwoorden.

Voorbeelden:  

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)

Het laatste voorbeeld kan niet worden geschreven als:

WHERE X NOT in (1,2,3)

Voorbeeld:  

In dit voorbeeld wordt een databasetabel genaamd TableName gebruikt, met de velden Dim1, Dim2, Num1, Num2 en Num3.Dim1 en Dim2 worden geladen in de QlikView-gegevensverzameling.

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

Dim1 en Dim2 zijn beschikbaar voor gebruik als dimensies. Num1, Num2 en Num3 zijn beschikbaar voor aggregaties. Dim1 en Dim2 zijn eveneens beschikbaar voor aggregaties. Het type aggregaties waarvoor Dim1 en Dim2 kunnen worden gebruikt is afhankelijk van het gegevenstype. In veel gevallen kunnen bijvoorbeeld velden van het type DIMENSION tekenreeksgegevens bevatten zoals namen of rekeningnummers. Deze velden kunnen niet worden opgeteld maar wel worden geteld: count(Dim1).

InformatieDIRECT QUERY-opdrachten worden rechtstreeks in de scripteditor geschreven. U kunt het samenstellen van DIRECT QUERY-opdrachten vergemakkelijken door een SELECT-opdracht te maken op basis van een gegevensverbinding en vervolgens het gegenereerde script bewerken om deze in een DIRECT QUERY-opdracht te veranderen.
Bijvoorbeeld, de SELECT-opdracht:

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


kan worden gewijzigd in de volgende DIRECT QUERY-opdracht:

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com