Текст запроса сохранить под именем Text_Z2_4
9.2.4.1. Выберите пункт меню Запрос>SQL-запрос.
Появится диалоговое окно «SQL-запрос».В этом диалоге выбрать из списков и занести:
· в окне "из таблиц":через падающий список Таблицывставьте Участки
· переместитесь в окно "выбрать колонки" и удалите там (*), а затем с
помощью падающих списков Колонки, Функциии Операторынаберите выражение: Id,Mid$(Кад_ном_кварт+”-“+Кад_ном_уч,1,19) “Сост_кад_ном_уч”, Владелец,Адрес_влад
Если запрос выполняется по одной таблице, то в падающем списке колонок показывается не составное имя поля (имя таблицы.имя поля), а лишь название колонки.
В приведенном выше выражении используются следующие функции:
Мid$(строка, номер позиции, длина) - позволяет выделить из строки последовательность символов;
+ строчный оператор «склейка».
Пример: строка символов "105736"
Мid$("105736",2,4) — “0573”
После выбора функции из списка Функции и аргумента из списка Колонки курсор будет помещен перед закрывающей скобкой. Выведите его за скобку, нажав клавишу с правой стрелкой на клавиатуре.
9.2.4.2. Оставьте пустыми окна «с условием», «сгруппировать по колонкам, «порядок задать по колонке».
9.2.4.3. Для проверки синтаксиса выражения нажмите кнопку «Проверить»
9.2.4.4.Для визуализации выбранных записей в окне списка Запросы установите флажок в позицию «Результат в список» и нажмите «ОК»
9.2.4.5. Результат запроса появится в виде таблицы Query№, состоящей из 4-ёх колонок.
9.2.4.6. Сохранить таблицу запроса Query№под именемZ2_4в своей папке по команде Файл> Сохранить копию
9.2.4.7. Текст этого запроса сохранить в своей папке по команде Файл>Сохранить запроспод именем Text_Z2_4
9.3.Комбинированные запросы
9.3.1. Запросить кадастровый номер квартала, площадь квартала, количество участков в квартале, суммарную площадь участков и количество строений в квартале. Порядок задать по площади квартала.
Для выполнения запроса необходимо использовать три таблицы: кадастровые кварталы, земельные участки и строения. Итоговая таблица запроса должна содержать следующие поля: индексное поле, кадастровый номер квартала, площадь квартала, количество участков в квартале и количество строений в квартале.
В запросе использовать функции обобщения:
Соиnt(*)- подсчитывает количество записей (объектов) в группе, используя в качестве аргумента *;
Sum(выражение) - подсчитывает сумму значении аргумента для всех записей в группе;
и географический оператор Contains, означающийсодержит, пример:
obj1Containsobj2означает истина, если центроид об'ьекта 2 находится внутри объекта 1.
Данный запрос выполняется в три этапа, т.к. встроенный SQL-язык системы MapInfo не позволяет использовать три и более таблиц, если функция обобщения Count(*) используется два и более раз.
Этап1: Запросить кадастровый номер квартала, площадь квартала, количество участков в квартале и их суммарную площадь. Таблицу запроса сохранить под именем Запрос_1, текст запроса сохранить под именем Text_Запрос _1
Запрос использует две базовые таблицы: Кад_квартал и Участки. Итоговая таблица промежуточного запроса «Запрос_1» должна содержать 5 колонок: системный номер квартала (индексное поле «Запрос_1.ID»), кадастровый номер квартала (Запрос_1.Кад_ном_кварт), площадь квартала (Запрос_1.Площадь_кв_м), количество земельных участков в квартале (Запрос_1.Кол_уч), суммарное значение площади этих участков (Запрос_1.Сум_пл_уч).
Выберите пункт меню Запрос>SQL-запрос.
Появится диалоговое окно «SQL-запрос».В этом диалоге выбрать из списков и занести:
Результат запроса появится в виде таблицы Query№, состоящей из 5-ти колонок. Обратите внимание, что вычисляемым полям автоматически, при выполнении запроса, присваивается название по имени используемой функции, например: Соиnt(*)и Sum(Участки.Площадь)).
Сохранить таблицу запроса Query№под именемЗапрос_1в своей папке по команде Файл> Сохранить копию,текст запроса сохранить под именем Text_Запрос _2
Этап 2. Запросить количество строений в квартале. Таблицу запроса сохранить под именем Запрос_2, текст запроса сохранить под именем Text_Запрос _2
Результат запроса появится в виде таблицы Query№, состоящей из 2-ух колонок.
Обратите внимание, вычисляемое поле - Соиnt(*)имеет название Кол_стр. Для этого в окошке Выбрать колонки после функции Обобщения - Соиnt(*),вычисляющейколичество строений в квартале,в кавычках вводилось название поля «Кол_стр».
Сохранить таблицу запроса Query№под именемЗапрос_2 в своей папке по команде Файл> Сохранить копию.
Откройте таблицы Запрос_1 и Запрос_2. Обратите внимание на следующий фактор. В таблице «Запрос_1» вычисляемым полям присвоены имена порядкового номера колонки. Необходимо переименовать поля: «_COL_4» и «_COL_5» на «Кол_уч» и «Сум_пл_уч». Это выполняется по команде Таблица>Изменить>Перестроить.
Этап 3. Объединить результат двух этапов (таблицы Запрос_1 и Запрос_2 ) в одну таблицу. Таблицу запроса сохранить под именем Z3_1.
Вам следует добавить в изменяемую таблицу – Запрос_1 поля таблицы – источника Запрос_2, при условии сопоставления друг другу содержимого каждой ячейки колонок Запрос_1.Id и Запрос_2.Id этих таблиц.