Obsługa wielu tabel w Direct Discovery
W ramach Direct Discovery można załadować więcej niż jedną tabelę lub widok za pomocą instrukcji join ANSI SQL.
W pojedynczym wykresie wszystkie miary muszą pochodzić z tej samej tabeli logicznej Qlik Sense, która może być kombinacją kilku tabel ze źródła powiązanego przy użyciu instrukcji join. Jednak w tym samym wykresie można korzystać z wymiarów pochodzących z innych tabel.
Na przykład tabele załadowane za pomocą Direct Discovery można powiązać przy użyciu klauzuli Where lub Join.
- Direct Discovery można wdrożyć w pamięci głównej w ramach scenariusza pojedynczego lub wielowymiarowego z dużymi zestawami danych.
- Direct Discovery można stosować z więcej niż jedną tabelą, która spełnia dowolne z poniższych kryteriów:
- Liczebność pola klucza w instrukcji join jest niska.
Liczebność pola klucza w instrukcji join jest wysoka, parametr DirectEnableSubquery ma wartość true oraz wszystkie tabele zostały połączone za pomocą Direct Discovery.
Więcej informacji zawiera temat Korzystanie z zapytań podrzędnych w Direct Discovery.
- Direct Discovery nie powinno się wdrażać w ramach scenariusza trzeciej postaci normalnej ze wszystkimi tabelami w postaci Direct Discovery.
Łączenie tabel Direct Discovery z klauzulą Where
W przykładowym skrypcie dane są ładowane z bazy danych AW2012. Tabele Product i ProductSubcategory są powiązane za pomocą klauzuli Where przy użyciu wspólnego pola 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 ;
Łączenie tabel Direct Discovery z klauzulami Join On
W celu tworzenia powiązań tabel Direct Discovery można również korzystać z klauzul Join On. W tej przykładowej instrukcji tabela SalesOrderHeader jest powiązywana z tabelą SalesOrderDetail za pośrednictwem pola SalesOrderID, a tabela Customer jest powiązywana z tabelą SalesOrderHeader za pośrednictwem pola Customer ID.
W tym przykładzie tworzymy miary z tej samej tabeli logicznej, co oznacza, że możemy z nich korzystać w tym samym wykresie. Na przykład można utworzyć wykres, w którym miarami będą SubTotal i OrderQty.