Текст запроса сохранить под именем 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 этих таблиц.