Поддержка нескольких таблиц в Direct Discovery

Можно использовать Direct Discovery для загрузки нескольких таблиц или видов с помощью функции объединения ANSI SQL. В одной диаграмме все меры должны быть из одной логической таблицы в Qlik Sense, но она может состоять из нескольких таблиц из источника, связанных с помощью операторов join. Однако в одной диаграмме можно использовать измерения из разных таблиц.

Например, можно связать таблицы, загруженные в Direct Discovery с помощью предложения Where или Join.

  • Можно выполнить развертывание Direct Discovery в одной таблице фактов или многомерном сценарии в памяти с большими наборами данных.
  • Приложение Direct Discovery можно использовать с несколькими таблицами, которые соответствуют одному из следующих критериев.
    • Небольшое количество элементов ключевого поля в объединении.
    • Большое количество элементов ключевого поля в объединении, для параметра DirectEnableSubquery установлено значение «true» и все таблицы объединены с Direct Discovery.

      Для получения дополнительной информации см. Использование вложенных запросов с помощью Direct Discovery.

  • Direct Discovery не подходит для развертывания в сценарии третьей нормальной формы со всеми таблицами в форме Direct Discovery.

Связывание таблиц Direct Discovery с помощью предложения Where

В этом примере скрипта данные загружаются из базы данных AW2012. Таблицы Product и ProductSubcategory связываются с помощью предложения 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. В этом примере оператора выполняется присоединение таблицы SalesOrderHeader к таблице SalesOrderDetail с помощью поля SalesOrderID, а также присоединение таблицы Customer к таблице SalesOrderHeader с помощью поля Customer ID.

В этом примере мы создаем меры из одной логической таблицы, что означает, что их можно будет использовать в одной диаграмме. Например, можно создать диаграмму, используя в качестве мер значения SubTotal и OrderQty.

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);