QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

Direct Discovery 中的多表格支援

透過 Direct Discovery,您可使用 ANSI SQL 聯結功能載入更多表格或檢視。在單一圖表中,所有量值都必須衍生自 QlikView 中的相同邏輯表格,但可以是透過 join 陳述式連結的來源,由數個表格所組成。不過,您可在相同圖表中使用源自其他表格的維度。

例如,您可使用 Where 子句或 Join 子句,連結使用 Direct Discovery 所載入的表格。

  • 可以將 Direct Discovery 部署到含有大型資料集之記憶體案例中的單一事實/多維度中。
  • Direct Discovery 可以和多個符合下列任一條件的表格搭配使用:
    • 聯結中索引鍵欄位的基數很低。
    • 聯結中索引鍵欄位的基數高,DirectEnableSubquery 設為 true,並且所有表格均已與 Direct Discovery 聯結。

      透過 Direct Discovery 使用子查詢

  • 在含有 Direct Discovery 表單中所有表格的第三個一般表單案例中,Direct Discovery 並不適合用來部署。

連結 Direct Discovery 表格與 Where 子句

在此指令碼範例中,我們從資料庫 AW2012 載入資料。ProductProductSubcategory 表格是使用 Where 子句透過共同的 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 ;

連結 Direct Discovery 表格與 Join On 子句

您也可以使用 Join On 子句連結 Direct Discovery 表格。在此陳述式範例中,我們透過 SalesOrderID 欄位將 SalesOrderHeader 表格聯結至 SalesOrderDetail 表格,並透過 Customer ID 欄位將 Customer 表格聯結至 SalesOrderHeader 表格。

在此範例中,我們從相同邏輯表格建立量值,這表示我們可以在相同圖表中使用這些量值。例如,您可使用 SubTotalOrderQty 作為量值來建立圖表。

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);
備註: 注意:您無法在 FROM 子句中由別名參考表格,必須使用完整的表格名稱。