Saltar al contenido principal Saltar al contenido complementario

Soporte multitabla en Direct Discovery

Puede utilizar Direct Discovery para cargar más de una tabla o vista utilizando la funcionalidad ANSI SQL. En un único gráfico, todas las medidas deben provenir de la misma tabla lógica en QlikView, pero esto puede ser una combinación de varias tablas de una fuente en la que hayan sido enlazadas mediante sentencias join. Sin embargo, puede utilizar dimensiones que provengan de otras tablas en el mismo gráfico.

Por ejemplo, podemos enlazar las tablas cargadas con Direct Discovery usando una cláusula Where o una cláusula Join.

  • Direct Discovery se puede desplegar en un escenario de múltiples dimensiones o un único hecho, en memoria y con grandes conjuntos de datos.
  • Direct Discovery puede utilizarse con más de una tabla que cumpla uno cualquiera de los siguientes criterios:
    • La cardinalidad del campo clave en el enlace join es baja.
    • La cardinalidad del campo clave en el enlace join es alta, DirectEnableSubquery se ha configurado como verdadero y todas las tablas se han enlazado mediante Direct Discovery.

      Utilizar subconsultas con Direct Discovery

  • Direct Discovery no es adecuado para el desarrollo en un escenario de Tercera Forma Normal (TNF) con todas las tablas en forma Direct Discovery.

Enlazar tablas Direct Discovery con una cláusula Where

En este script a modo de ejemplo, cargaremos datos de la base de datos AW2012. Las tablas Product y ProductSubcategory se enlazan mediante una cláusula Where usando el campo común ProductSubCategoryID.

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 ;

Enlazar tablas Direct Discovery con cláusulas Join On

También podemos utilizar cláusulas Join On para enlazar tablas de Direct Discovery. En esta sentencia a modo de ejemplo unimos la tabla SalesOrderHeader con la tabla SalesOrderDetail mediante el campo SalesOrderID, y también unimos la tabla Customer con la tabla SalesOrderHeader mediante el campo Customer ID.

En este ejemplo, crearemos medidas a partir de la misma tabla lógica, lo que significa que podemos utilizarlas en el mismo gráfico. Por ejemplo, podemos crear un gráfico con SubTotal y OrderQty como medidas.

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);
Nota informativaNo es posible referirse a tablas por su alias en la cláusula FROM, necesitamos usar el nombre completo de tabla.

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.

Únase al Programa de modernización de la analítica

Remove banner from view

Modernícese sin comprometer sus valiosas aplicaciones de QlikView con el Programa de modernización de la analítica. Haga clic aquí para obtener más información o contactar con nosotros: ampquestions@qlik.com