Direct Query
L'instruction DIRECT QUERY vous permet d'accéder à des tables par le biais d'une connexion
Syntax:
DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist] [DETAIL fieldlist] FROM tablelist
[WHERE where_clause]
Les mots-clés DIMENSION, MEASURE et DETAIL peuvent être utilisés dans n'importe quel ordre.
Les clauses des mots-clés DIMENSION et FROM sont obligatoires pour toutes les instructions DIRECT QUERY. Le mot-clé FROM doit figurer après le mot-clé DIMENSION.
Les champs spécifiés directement après le mot-clé DIMENSION sont chargés en mémoire ; ils peuvent être utilisés pour créer des associations entre les données en mémoire et les données Direct Discovery.
Vous pouvez utiliser le mot-clé MEASURE pour définir des champs reconnus par QlikView à un « niveau méta ». Les données réelles d'un champ MEASURE résident uniquement dans la base de données lors du processus de chargement et sont récupérées de manière ad hoc d'après les expressions de graphique utilisées dans un graphique.
En général, les champs dotés de valeurs discrètes utilisées comme dimensions sont à charger à l'aide du mot-clé DIMENSION tandis que les nombres exclusivement employés dans les agrégations doivent être sélectionnés à l'aide du mot-clé MEASURE.
Les champs de type DETAIL fournissent des informations ou des détails, par exemple des champs de commentaire, que les utilisateurs peuvent souhaiter afficher dans une zone table présentant plusieurs niveaux de détail. Il n'est pas possible d'utiliser des champs de type DETAIL dans des expressions de graphique.
De par sa conception, l'instruction DIRECT QUERY est neutre vis-à-vis des sources de données prenant en charge le langage
Il est possible d'employer la syntaxe NATIVE des sources de données lorsque l'utilisateur connaît la base de données interrogée et qu'il souhaite exploiter des extensions propres à la base de données pour
- Sous forme d'expressions de champ dans les clauses DIMENSION et MEASURE
- Sous forme de contenu de la clause WHERE
Examples:
DIMENSION Dim1, Dim2MEASURENATIVE ('X % Y') AS X_MOD_Y
DIMENSION Dim1, Dim2MEASURE X, YFROM TableNameWHERE NATIVE ('EMAIL MATCHES "\*.EDU"')
Arguments:
Argument | Description |
---|---|
|
Liste de spécifications de champs séparées par des virgules, fieldname {, fieldname}. Une spécification de champ peut correspondre à un nom de champ, auquel cas le même nom est utilisé pour le nom de colonne dans la base de données et le nom de champ QlikView. Une spécification de champ peut également désigner un « alias de champ », auquel cas un nom de colonne ou d'expression de base de données se voit attribuer un nom de champ QlikView. |
|
Liste des noms des tables ou des vues de la base de données à partir desquelles les données seront chargées. En général, il s'agit de vues contenant un qualificateur JOIN appliqué à la base de données. |
|
La syntaxe complète des clauses WHERE de base de données sort du cadre de cette rubrique, mais la plupart des « expressions relationnelles » NOT est un opérateur unaire, par opposition à un modificateur de certains mots-clés. 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)
Il n'est pas possible d'écrire le dernier exemple de la manière suivante : WHERE X NOT in (1,2,3)
|
Example:
Dans cet exemple, soit une table de base de données nommée
Par exemple, il est possible de modifier l'instruction SELECT :
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;
pour obtenir l'instruction DIRECT QUERY suivante :
DIMENSION
SalesOrderID,
RevisionNumber
MEASURE
SubTotal,
TaxAmt
DETAIL
OrderDate
FROM MyDB.Sales.SalesOrderHeader;