Для SQL-запросов к источникам используется возможность добавить новый запрос в структуре иерархического дерева источников. Добавленный таким образом запрос отображается в левом верхнем углу схемы модели. Можно переместить его в необходимое положение на схеме.
Шаги создания SQL-запроса:
-
наведите курсор мыши на источник, для которого необходимо создать SQL-запрос;
-
нажмите на кнопку (Рисунок «Кнопка вызова меню»);
-
в открывшемся меню выберите значение «Добавить SQL» (Рисунок «Значение «Добавить SQL»);
-
откроется окно создания SQL-запроса, введите наименование и SQL-запрос (Рисунок «Окно создания SQL-запроса»);
Примечание Для удобства настройки в поле ввода SQL-запроса при вводе первых букв отображаются значения справочников (IntelliSense) и подсветка синтаксиса. Справочники реализованы по полям модели, ключевым словам (select, from и др.), алиасам (при выборе алиаса в выпадающем списке в SQL-запросе указывается код выбранного поля для корректной работы запроса), таблицам (при выборе листов или таблиц файловых источников в выпадающем списке в SQL-запросе указывается его название в обратных кавычках ` ` для корректной работы запроса) (Рисунок «Пример отображения выпадающего списка при вводе SQL-скрипта»). -
нажмите на кнопку , результат отобразится в таблице ниже (Рисунок «Результат»);
-
чтобы очистить окно ввода SQL-запроса, нажмите на кнопку ;
-
нажмите на кнопку , созданный SQL-запрос сохранится и отобразится в левом верхнем углу схемы модели. При сохранении запроса реализована проверка на наличие всех используемых полей в уже созданных виджетах (в том числе и системных виджетов) на этой модели. В случае отсутствия нужных полей в запросе при сохранении отобразится уведомление типа: «Сохранить SQL-запрос невозможно, так как в нем отсутствует поле [недостающее поле]. Данное поле используется в следующих виджетах: [список виджетов]» (Рисунок «Отображение уведомления при сохранении запроса в случае отсутствия нужных полей»).
Примечание |
---|
Если в SQL-запросе будет наименование, введенное на кириллице, то оно автоматически будет переведено в латиницу. Новые наименования проверяются на уникальность. |
При создании SQL-запроса к источнику данных с типом .xlsx выделяйте названия листов Excel-файла кавычками ` `, например, `Лист1`. При выполнении операции JOIN в запросе «select *» замените на конкретный список полей, например, «select `Лист1`.`Фамилия`, `Лист1`.`Имя`».
Пример |
---|
Запрос (Рисунок «Пример SQL-запроса к источнику данных с типом .xlsx»): select `Лист1`.`Фамилия`, `Лист1`.`Имя`, `Лист1`.`Отчество`, `Лист2`.`Ид страны`, `Лист1`.`Страна` from `Лист1` join `Лист2` on `Лист1`.`Страна`=`Лист2`.`Ид страны. |
При создании SQL-запроса к источнику с типом JSON:
-
если JSON представлен в виде простого списка строк:
[
{...},
{...}
]
то обращение выполняется к таблице default (т.к. данная структура файла представляет одну таблицу, по умолчанию ее наименование default). Пример: SELECT * FROM `default`;
-
если JSON представлен в виде нескольких вложенных таблиц:
{
" table 1": [{...}, {....}],
" table 2": [{...}, {....}],
}
то обращения к таблицам выполняются по именам из ключей словаря верхнего уровня. Пример: SELECT * FROM `table 1` INNER JOIN `table 2` ON `table 1`.`id 1`=`table 2`.`id 2`.
Примечание |
---|
SQL-запросы к файловым источникам выполняются через Spark SQL. |