Примеры пользовательского SQL для Direct Query
В следующих примерах показаны некоторые варианты использования пользовательского SQL для Direct Query.
Пример: добавление определений пользовательского SQL в модель Direct Query
В этом примере определения пользовательского SQL для таблиц C, R, N добавляются в модель данных в приложении Direct Query вместе с двумя межтабличными связями. Функция Coalesce используется для проверки того, равно ли значение поля N_NATIONKEY значению C_NATIONKEY или оба они равны значению null.
Coalesce — это рекомендуемый способ добавления проверки того, равно ли значение поля значению null. Для получения дополнительной информации см. coalesceФункция скрипта и диаграммы.
Пример: добавление таблиц с пользовательским SQL в модель данных, созданную с помощью Диспетчер модели данных
В этом примере модель данных Direct Query сначала создается с содержимым объекта DirectQueryModel.main, который был создан с помощью Диспетчер модели данных. Затем в модель данных добавляется дополнительная таблица C с полями C_CUSTKEY и C_ACCTBAL. Устанавливается связь между полем O_CUSTKEY в ORDERS и полем C_CUSTKEY в C.
Пример: создание модели данных Direct Query с таблицей пользовательского SQL
В этом примере модель данных Direct Query создается с таблицей пользовательского SQL C с переименованными полями C_KEY и C_BAL. Затем IMPORT LIVE добавляет модель данных, созданную в Диспетчер модели данных из DirectQueryModel.main. Эта модель данных содержит таблицу Orders и имеет существующую связь между Orders and Customer в этой модели. Затем существующая связь между Customers и Orders удаляется, и определяется новая связь между Orders и C.
Пример: создание модели данных, включающей переменные
В этом примере сначала определяется переменная MULT со значением 100. Затем она применяется в качестве множителя к сумме PS_Supplycost для вычисления поля S.
Пример: создание модели данных с выражениями Qlik
В этом примере для построения модели данных используются как переменные, так и выражения. В таблице ORDERS_AGGREGATIONS выражения используются для определения значений в ORDERS_GROUP_TOTAL_PRICE. При каждом совершении выборки на листе, которая влияет на значения в ORDERS_GROUP_TOTAL_PRICE, выражение будет вычисляться повторно на основе данных, возвращенных запросом к базе данных.
Пример: использование функций в пользовательских выражениях SQL
Следующая пользовательская инструкция SQL демонстрирует простое использование выражения движка $(=…), которое расширяется при выполнении в пользовательском SQL. Это выражение извлекает строки удаленной базы данных в зависимости от информации о пользователе сеанса приложения. Когда диаграмма, запрос или выборка выполняются пользователем сеанса приложения Direct Query с адресом электронной почты 'user1@qlik.com', динамическое извлечение строк данных из удаленной базы данных SQL фильтруется так, чтобы соответствовать только тем строкам, в которых поле C_NAME содержит значение 'Customer#000000007'. В противном случае, если адрес электронной почты пользователя сеанса приложения Direct Query не равен 'user1@qlik.com', будут извлечены и показаны только те строки, в которых поле C_NAME содержит значение 'Customer#000000009'.