Accéder au contenu principal Passer au contenu complémentaire

Direct Query

L'instruction DIRECT QUERY vous permet d'accéder à des tables par le biais d'une connexion ODBC ou OLE DB au moyen de la fonction Direct Discovery.

 

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.

Note InformationsL'instruction DIRECT QUERY ne peut pas contenir de clauses DISTINCT ou GROUP BY.

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 SQL. C'est pour cette raison qu'il est possible d'utiliser la même instruction DIRECT QUERY pour différentes bases de données SQL sans modification. Direct Discovery génère des requêtes adaptées à la base de données en fonction des besoins.

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 SQL. La syntaxe NATIVE des sources de données est prise en charge :

  • Sous forme d'expressions de champ dans les clauses DIMENSION et MEASURE
  • Sous forme de contenu de la clause WHERE

 

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 InformationsLes termes suivants sont utilisés comme des mots-clés et ne peuvent donc pas servir de noms de champ ou de colonne sans être placés entre guillemets : and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

 

Arguments Direct query
Argument Description
fieldlist

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.

Listes de champs Direct Discovery

tablelist

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.

where_clause

La syntaxe complète des clauses WHERE de base de données sort du cadre de cette rubrique, mais la plupart des « expressions relationnelles » SQL sont autorisées, y compris l'emploi des appels de fonction, l'opérateur LIKE pour les chaînes, IS NULL et IS NOT NULL ; IN. BETWEEN n'est pas inclus.

NOT est un opérateur unaire, par opposition à un modificateur de certains mots-clés.

 

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)

 

Dans cet exemple, soit une table de base de données nommée TableName, contenant les champs Dim1, Dim2, Num1, Num2 et Num3.Les champs Dim1 et Dim2 seront chargés dans l'ensemble de données QlikView.

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

Dim1 et Dim2 seront disponibles pour être utilisés comme dimensions. Num1, Num2 et Num3 seront disponibles pour les agrégations. Dim1 et Dim2 sont également disponibles pour les agrégations. Le type d'agrégation pour lequel les champs Dim1 et Dim2 peuvent être utilisés dépend du type de leurs données. Par exemple, dans de nombreux cas, les champs DIMENSION contiennent des données de chaîne telles que des noms ou des numéros de compte. Ces champs ne peuvent pas être additionnés, mais ils peuvent être comptés : count(Dim1).

Note InformationsLes instructions DIRECT QUERY sont directement rédigées dans l'éditeur de script. Afin de simplifier la construction des instructions DIRECT QUERY, vous pouvez générer une instruction SELECT à partir d'une connexion de données, puis modifier le script résultant en vue de le convertir en instruction DIRECT QUERY.
Par exemple, il est possible de modifier l'instruction SELECT :

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


pour obtenir l'instruction DIRECT QUERY suivante :

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com