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 QlikView, która może być kombinacją kilku tabel ze źródła powiązanego przy użyciu instrukcji join. W tym samym wykresie można jednak 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.
- 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 miary są tworzone na podstawie tej samej tabeli logicznej, co oznacza, że można z nich korzystać w tym samym wykresie. Na przykład można utworzyć wykres, w którym miarami będą SubTotal i OrderQty.