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

Prise en charge de plusieurs tables dans Direct Discovery

Direct Discovery vous permet de charger plusieurs tables ou vues à l'aide de la fonctionnalité de jointure ANSI SQL. Avec un graphique unique, toutes les mesures doivent être dérivées de la même table logique dans QlikView, mais il peut s'agir d'une combinaison de plusieurs tables issues d'une source liée via des instructions de jointure. Vous pouvez cependant utiliser des dimensions provenant d'autres tables figurant dans le même graphique.

Par exemple, vous pouvez lier les tables chargées au moyen de Direct Discovery en utilisant soit une clause Where, soit une clause Join.

  • Il est possible de déployer Direct Discovery dans le cadre d'un scénario de chargement en mémoire d'un seul fait et de plusieurs dimensions pour de grands ensembles de données.
  • Direct Discovery peut s'utiliser avec plus d'une table répondant à l'un des critères suivants :
    • La cardinalité du champ clé dans la jointure est faible.
    • La cardinalité du champ clé dans la jointure est élevée ; DirectEnableSubquery est définie sur true et toutes les tables ont été jointes à l'aide de Direct Discovery.

      Utilisation de sous-requêtes avec Direct Discovery

  • Direct Discovery ne convient pas à un déploiement réalisé dans le cadre d'un scénario de troisième forme normale avec toutes les tables au format Direct Discovery.

Liaison de tables Direct Discovery à l'aide d'une clause Where

Dans cet exemple de script, nous chargeons des données issues de la base de données intitulée AW2012. Les tables Product et ProductSubcategory sont liées à l'aide d'une clause Where utilisant le champ ProductSubCategoryID commun.

Product_Join: DIRECT QUERY DIMENSION [ProductID], [AW2012].[Production].[Product].[Name] as [Product Name], [AW2012].[Production].[ProductSubcategory].[Name] as [Sub Category Name], Color, [AW2012].[Production].[Product].ProductSubcategoryID as [SubcategoryID] MEASURE [ListPrice] FROM [AW2012].[Production].[Product], [AW2012].[Production].[ProductSubcategory] WHERE [AW2012].[Production].[Product].ProductSubcategoryID = [AW2012].[Production].[ProductSubcategory].ProductSubcategoryID ;

Liaison de tables Direct Discovery à l'aide de clauses Join On

Vous avez par ailleurs la possibilité d'utiliser des clauses Join On pour lier des tables Direct Discovery. Dans cet exemple d'instruction, nous joignons la table SalesOrderHeader à la table SalesOrderDetail via le champ SalesOrderID, puis la table Customer à la table SalesOrderHeader via le champ Customer ID.

Dans cet exemple, nous créons des mesures à partir de la même table logique, ce qui signifie qu'il est possible de les utiliser dans le même graphique. Par exemple, vous pouvez créer un graphique qui utilise SubTotal et OrderQty comme mesures.

Sales_Order_Header_Join: DIRECT QUERY DIMENSION AW2012.Sales.Customer.CustomerID as CustomerID, AW2012.Sales.SalesOrderHeader.SalesPersonID as SalesPersonID, AW2012.Sales.SalesOrderHeader.SalesOrderID as SalesOrderID, ProductID, AW2012.Sales.Customer.TerritoryID as TerritoryID, OrderDate, NATIVE('month([OrderDate])') as OrderMonth, NATIVE('year([OrderDate])') as OrderYear MEASURE SubTotal, TaxAmt, TotalDue, OrderQty DETAIL DueDate, ShipDate, CreditCardApprovalCode, PersonID, StoreID, AccountNumber, rowguid, ModifiedDate FROM AW2012.Sales.SalesOrderDetail JOIN AW2012.Sales.SalesOrderHeader ON (AW2012.Sales.SalesOrderDetail.SalesOrderID = AW2012.Sales.SalesOrderHeader.SalesOrderID) JOIN AW2012.Sales.Customer ON(AW2012.Sales.Customer.CustomerID = AW2012.Sales.SalesOrderHeader.CustomerID);
Note InformationsIl n'est pas possible de faire référence à des tables par alias dans la clause FROM ; vous devez utiliser le nom complet de la table.

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