Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Rukovodstvo_polzovatelya_MapInfo_Professional.pdf
Скачиваний:
718
Добавлен:
05.03.2016
Размер:
11.58 Mб
Скачать

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

Настройки районирования

Вы можете регулировать порядок расположения районов в Списке районов командой РАЙОНИРОВАНИЕ > НАСТРОЙКИ. Этак команда сопровождается диалогом "Показ районов". Выберите один из способов сортировки районов: Последний изменяемый, По алфавиту или Без упорядочения. Кроме того, можно регулировать отображение разделительной сетки в Списке районов и сохранять свои настройки в качестве стандартных.

Режим сортировки Показывать изменяемый может быть очень полезен в случае большого числа групп в окне Списка районов. Если Вы выбрали объект на карте, принадлежащий району, который в данный момент не виден в Списке районов, MapInfo пролистает окно таким образом, чтобы нужный район стал первым в окне. Это упрощает просмотр контрольных показателей и выбор нового изменяемого района при перепланировании районов.

Чтобы изменить стиль отображения района, следует просто указать на поле стиля для района в Списке районов. Появится диалог "Стиль области", "Стиль линии" или "Стиль символа", в котором Вы можете выбрать новый стиль области, линии или символа для заданного района.

Чтобы сохранить изменения стилей, следует сохранить результаты перепланирования районов в Рабочем Наборе. Команда ФАЙЛ > СОХРАНИТЬ ТАБЛИЦУ не сохраняет стилизацию районов. Команда ФАЙЛ > СОХРАНИТЬ сохраняет только распределение объектов по районам. Стили же относятся к тематическому слою карты, а не собственно к таблице.

Записи без графических объектов

Районирование предполагает сопоставление объектов на карте различным районам. Если же таблица содержит записи без соответствующих им графических объектов, то следует помнить, что MapInfo все равно учитывает такие записи в Списке районов. Их нельзя присвоить вновь создаваемым районам. Тем не менее они влияют на значения контрольных показателей.

Если часть записей в Вашей таблице имеет графические объекты, а часть не имеет, то, возможно, наилучшим способом создания районов будет сохранение записей с графическими объектами в виде отдельной таблицы и уже для нее создать районы.

Завершение работы с районированием

Для того, чтобы закончить работу с районированием, просто закройте окно Списка районов. Соответствующие тематические слои будут удалены из окна Картю.

Внимание: Прежде чем начать районирование для новой таблицы, надо закрыть окно Списка районов для рабочей таблицы.

Создание выражений

Процесс построения выражений в MapInfo похож на то, как мы пишем предложения на родном языке. В нашем распоряжении есть набор слов, которые можно использовать, и синтаксические правила для соединения этих слов. Синтаксис выражений MapInfo гораздо проще синтаксиса русского языка. Правила русского языка кажутся нам простыми только потому, что мы пользуемся им постоянно, а правила составления выражений могут только на первых порах показаться сложными.

Впрочем, как и предложения русского языка, выражения в MapInfo можно сделать весьма сложными. Если Вы не освоились с созданием сложных выражений, все равно возможности, предоставляемые простыми выражениями, создаваемыми в диалогах команд MapInfo, позволяют управлять данными вполне профессионально.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

492

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

Составление простых выражений

Выражения составляются с использованием названий полей таблицы, некоторых констант, а также функций и операторов. Названия колонок и константы можно сравнить с существительными, а функции и операторы – с глаголами, предлогами и союзами. В любом выражении всегда должно присутствовать хотя бы одно название колонки или хотя бы одна кон-станта. Количество функций и операторов зависит от Ваших задач и и ограничено только Вашей фантазией.

Простейшие возможные выражения состоят из названий колонок, например:

1.НАСЕЛЕНИЕ_1990

2.ОБЛАСТЬ

Такие выражения Вы можете использовать в команде ВЫДЕЛИТЬ УСЛОВНО, чтобы указать, какие данные должны быть отображены на карте. В команде ОБНОВИТЬ КОЛОНКУ подобное выражение задает данные, которые следует использовать при пересчете таблицы.

Чуть более сложными являются выражения:

3.НАСЕЛЕНИЕ_1990 > 17893

4.НАСЕЛЕНИЕ_1990 <= НАСЕЛЕНИЕ_1980

5.РАЙОН <> ”Выхино”

6.НАСЕЛЕНИЕ_1980 * 1.2

7.НАСЕЛЕНИЕ_1990 / ОБЩ_ПЛОЩАДЬ

8.Round(НАСЕЛЕНИЕ_1990 / ОБЩ_ПЛОЩАДЬ,.1)

Впервых трех примерах используется оператор сравнения. Первое выражение задает проверку: было ли в 1990 году население больше (>) заданной константы (17893). Второе проверяет, какие значения в колонке "НАСЕЛЕНИЕ_1990" меньше или равны (<=) значениям из другой колонки – "НАСЕЛЕНИЕ_1980". Третье проверяет, относится ли запись к району Москвы Выхино. Если название района не равно (<>) “Выхино”, то запись попадает в выборку. Такие выражения могут быть применены в команде ВЫБРАТЬ или в окошке С условием команды SQL-ЗАПРОС. Эти команды делают выборку записей из таблицы, удовлетворяющих заданному выражению.

Примеры 6 и 7 используют арифметические операторы. В примере 6 значения в колонке "НАСЕЛЕНИЕ_1980" умножаются (*) на константу (1.2), а в примере 7 значения из одной колонки ("НАСЕЛЕНИЕ_1990") делятся на значения из другой колонки ("ОБЩ_ПЛОЩАДЬ"). В примере 8 применена функция округления, округляющая значение выражения “НАСЕЛЕНИЕ_1990 / ПЛОЩАДЬ” до ближайшей десятой доли (.1).

Выражения 6, 7 и 8 не содержат операторов сравнения и поэтому не могут быть использованы в команде ВЫБРАТЬ или в окошке С условием команды SQL-ЗАПРОС. Однако Вы можете применить их в командах ВЫДЕЛИТЬ УСЛОВНО, ОБНОВИТЬ КОЛОНКУ или в окошке

Выбрать колонки команды SQL-ЗАПРОС.

Составление сложных выражений

Теперь рассмотрим примеры 9 и 10, более сложнее, чем 1-8:

9.НАСЕЛЕНИЕ > НАСЕЛЕНИЕ*1.2

10.Round((НАСЕЛЕНИЕ*1.2)/ОБЩ_ПЛОЩАДЬ,.1)

Мы создали выражение 9, взяв выражение 3 и заменив константу “17893” выражением 6. Аналогично, выражение 10 получено из выражения 8 заменой названия “НАСЕЛЕНИЕ_1990” выражением 6.

В общем случае, сложные выражения получаются путем объединения простых выражений. Возможно, лучшим способом изучения сложных выражений будет для Вас составление сложных выражений из примеров, которые приведены выше и будут еще рассмотрены в этой главе. Сложные выражения создаются в основном двумя способами:

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

493

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

заменой названия колонки или константы на простое выражение;

соединением выражений с помощью логических операторов (And, Not, Or).

Иллюстрацией первого способа является пример 9. О логических операторах речь пойдет ниже.

Задание констант

При употреблении в выражениях фиксированных значений – строк, числовых констант и дат – Вы должны следовать следующим соглашениям.

Символьные строки

Если Вы употребляете в выражении строку символов, то эта строка должна быть заключена в двойные кавычки. Таким образом MapInfo отличает строки символов от названий колонок. Например, строки 11 и 12 из приведенных ниже являются строками-константами, а 13 и 14 – не являются.

11.”Единая Россия”

12.”Москва”

13.Единая Россия

14.Москва

Числа

При задании числовых констант не набирайте запятые или знак доллара. Допустимы только цифры, десятичная точка, используемая как разделитель целой и дробной части, и знак “минус” для отрицательных чисел.

Даты

Выражение с датой включает день, месяц и иногда год. Год обозначается двумя или четырьмя цифрами. Вся дата заключается в двойные кавычки, причем месяцы, дни и годы отделяются друг от друга знаками тире или наклонной чертой (/). Вот примеры допустимых дат, обозначающих двадцатое января:

15.”1–20–92”

16.”01/20/1992”

17.”1/20”

Операторы - Математические операторы

:

Оператор

Описание

Пример

 

 

 

+

сложение

A + B

 

 

 

-

вычитание или отрицательное

A - B (вычитание)

 

числоs

-A (ввод отрицательного числа)

 

 

 

*

умножение

A * B

 

 

 

/

деление

A / B

 

 

 

^

возведение в степень

A ^ B

 

 

 

\

деление без остатка

A\B

 

 

 

mod

modulo arithmetic

A mod B

 

 

 

Обратите внимание, что Вы можете:

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

494

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

добавлять числа к дате с целью получения другой даты;

вычитать число из даты для получения другой даты;

вычитать дату из даты для получения числа дней.

Когда Вы добавляете числа к датам или вычитаете числа из дат, программа рассматривает числа как определенное количество дней. Так, если Вы добавляете или вычитаете неделю, надо использовать число 7; когда Вы хотите добавить или вычесть месяц, надо использовать 30 или 31; когда MapInfo вычитает дату из даты, результатом будет число дней.

Операторы - Строковые операторы

+ “concatenation” — соединяет строковую константу со строковой.

& (может использоваться если перед этим стоит пробел)

Все строковые константы должны быть заключены в двойные кавычки. Рассмотрим, например,

"Ms. " + Фамилия

При вычислении значения этого выражения MapInfo поставит "Ms. " перед каждым значением фамилии. Строковая константа ("Ms. ") взята в двойные кавычки. Аналогично,

"Здравствуй, " + "мир"

создает строку“Здравствуй, мир”, а

”4”+”5”

образует строку "45".

Операторы - Операторы сравнения

Оператор

Описание

 

 

=

“равно”

 

 

<>

“не равно”

 

 

>

“больше чем”

 

 

<

“меньше чем”

 

 

>=

“больше или равно”

 

 

<=

“меньше или равно”

 

 

Сравнение чисел

Сравнение чисел основано на сравнении числовых резльтатов выражений и констант.

Допустим, нам нужно получить все данные о людях, чей доход составляет более $1000 в месяц:

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

495

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

18. ДОХОД>1000

Обращаем Ваше внимание на то, что знак доллара или запятые (ими разделяются тысячи в англоязычной литературе) использовать нельзя. MapInfo не обрабатывает их и выдаст сообщение об ошибке

Например, требуется выбрать записи, в которых значение среднего возраста равно 42:

19. СР_ВОЗРАСТ=42

Данное выражение выбирает только те записи, в которых средний возраст точно равен 42. Если данные с возрастом содержат десятичные знаки (например, в демографических данных, поставляемых в комплекте с MapInfo), то точного значени 42 может и не встретиться. В этом случае Вы можете использовать функцию округления.

Вот пример использования данной функции:

20. Round(СР_ВОЗРАСТ, 1)=42

Функция Round(число, число) округляет первый аргумент с точностью, задаваемой вторым аргументом. В приведенном примере первое число означает средний возраст ("СР_ВОЗРАСТ"), а второе (1) показывает, что его надо округлять до ближайшего целого числа.

Пусть требуется выбрать все строки, в которых суммы не равны 23 000:

21. СУММА<>23000

Функцию Round целесообразно использовать в том случае, если Вы не уверены, что имеется в виду точное значение 23 000 (см. пример 10).

Сравнение строк

Сравнение строк основано на точном сравнении символов в строке. В этом случае ">" означает "в алфавитном порядке больше, чем", а "<" - "меньше, чем (по алфавиту)".

При введении в выражение строковой константы ее следует заключать в кавычки так программа будет воспринимать ее как строку, а не как имя колонки.

В следующем примере мы выберем все строки, в которых продавцом является фирма "Комета":

22. ПРОДАВЕЦ=”Комета”

Помните, что строка должна быть заключена в двойные кавычки, иначе MapInfo будет искать колонку с названием "Комета".

А теперь выберем все строки, в которых продавцом являются любые фирмы, кроме "Кометы":

23. ПРОДАВЕЦ<>”Комета”

Сравнение дат

Выберем все записи, в которых указано, что товар получен после 9 октября 1991 года:

24.

ДОСТАВЛЕНО=”10–9–91”

 

 

Внимание: Не забывайте делать следующее:

 

заключать константы дат в кавычки;

 

 

 

 

 

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

496

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

использовать такой порядок: месяц, день, год;

разделять числа в выражении при помощи дефиса (-) или наклонной черты (/);

обозначать год двумя или четырьмя цифрами.

Теперь выберем записи, в которых товар получен после 9 октября 1991 года:

25. ДОСТАВЛЕНО>”10–9–91”

Однако, это выражение не выберет записи, относящиеся к 9 октября 1991. Для этого надо ипользовать оператор ">=":

26.ДОСТАВЛЕНО>=”10–9–91”

Вследующем примере выбираем все записи, полученные до августа независимо от года:

27.Month(ДОСТАВЛЕНО) < 8

Это выражение использует функцию Month для точного указания месяца. Поскольку в приведенном выражении не уточняется, какой именно год имеется в виду, то будьте внимательны, если Ваша база данных содержит информацию о закупках товара за несколько лет.

Сравнение логических величин

Выберем все заказы, которые были отправлены клиентам:

28. Отправлено

Колонка “ОТПРАВЛЕНО” содержит логические величины: “T” для True ("Да") и “F” для False ("Нет"). Если заказ уже отправлен, то запись содержит значение "Т". В противном случае заказ не отправлен.

Для выбора заказов, которые еще не были отправлены, можно использовать такие выражения:

29.Str$(Отправлено)=”F”

30.Not Отправлено

Операторы - Географические операторы

MapInfo поддерживает несколько географических операторов. Они используются для выбора объектов на основании их взаимного расположения в пространстве. При работе с географическими операторами в MapInfo используется специальное ключевое слово “obj” или “object”, указывающее, что MapInfo должна вычислить значение на основании графических объектов, а не соответствующих им в таблице числовых полей.

Имя географического оператора указывается между географическими объектами; выбрать его можно в списке Операторы.

Ниже приведены все географические операторы, с которыми работает программа:

:

 

Оператор

Описание

 

 

 

 

 

 

 

 

Contains (Содержит)

центроид объекта В попадает в объект A

 

 

 

Contains Entire (Полностью содержит)

объект В находится целиком в объекте А

 

 

 

 

 

 

 

 

 

 

 

 

MapInfo Professional 7.5

 

 

© May 2004 MapInfo Corporation. All rights reserved.

497

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

Оператор

Описание

 

 

Contains Part (Содержит часть)

объект В частично попадает в объект А

Within (Лежит внутри)

центроид объекта А попадает в объект В

Entirely Within (Полностью лежит внутри)

объект А целиком попадает в объект В

Partly Within (Частично лежит внутри)

объект В частично попадает в объект А

Intersects (Пересекает)

объект А и объект В имеют хотя бы одну общую

 

точку

 

 

Различие между Contains и Within, с одной стороны, и Contains Entire и Entirely Within, с

другой, состоит в том, что Contains и Within работают с центроидами объекта, а Contains Entirely и Entirely Within – с целыми объектами. Рисунок показывает это различие.

Центроид объекта В

Объект В частично

Объект В целиком

попадает в объект А

попадает в объект А

попадает в объект А

Во всех трех случаях объект A так или иначе включает в себя объект B. На первом и третьем рисунках центроид объекта B лежит внутри границы объекта A. На крайнем рисунке слева часть объекта B лежит вне границ объекта A. А на самом правом рисунке весь объект B лежит внутри объекта A. Только во втором случае мы говорим, что “объект A полностью содержит объект B” или что "объект B лежит полностью внутри объекта A”. На среднем рисунке объекты А и В имеют небольшую площадь перекрытия, при этом центроид объекта В не попадает в объект А, а центроид объекта А не попадает в объект В.

Внимание: Следует помнить, что MapInfo выполняет простые операции Содержит

(Contains) и Лежит внутри (Within) гораздо быстрее, чем Содержит полностью

(Contains Entire) и Полностью лежит внутри (Entirely Within). Поэтому, если Вам не обязательно точно знать, полностью ли один объект содержит другой, используйте

Contains и Within вместо Contains Entire и Entirely Within.

Операторы - Логические операторы

 

Оператор

Описание

 

 

 

 

 

 

 

 

 

And

"True" тогда и только тогда, когда оба аргумента (выражение

 

 

 

 

объединяет их вместе) равны True. Чтобы быть выбранной, запись

 

 

 

должна удовлетворять обоим.

 

 

 

 

 

 

 

 

Or

"True", если один или оба аргумента (выражение объединяет их

 

 

 

 

вместе) равны "True". Чтобы быть выбранной, запись должна

 

 

 

 

удовлетворять только одному из этих условий. При выполнении

 

 

 

 

обоих условий одно-временно запись также будет выбрана.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MapInfo Professional 7.5

 

 

© May 2004 MapInfo Corporation. All rights reserved.

498

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

Оператор

Описание

 

 

Not

"True", если аргумент, к которому применяется выражение, равен

 

"False". Запись выбирается в случае, когда она не удовлетворяет

 

логическому условию.

 

 

And, Or и Not – это логические операторы. Они используются при составлении выражений в диалоге команды ВЫБРАТЬ и в окошке С условием диалога команды SQL-ЗАПРОС. MapInfo использует простые выражения как проверку, которая производится над каждой записью таблицы. Результатом каждой проверки является ответ "да" или "нет" (т.е. "True" или "False"). Комбинируя результаты проверки каждого условия с помощью логических операторов, MapInfo выдает общий ответ на вопрос: удовлетворяет ли данная запись условию выбора.

Предположим, Вас интересует недвижимость стоимостью не менее $ 250 000 в Калмыкии. Выбираемые записи должны удовлетворять двум условиям, которые можно задать двумя простыми выражениями:

31.СТОИМОСТЬ >= 250000

32.ОБЛАСТЬ = ”Калмыкия”

Сначала можно выбрать всю недвижимость заданной стоимости. Затем по полученной выборке будет произведен новый поиск: находится ли недвижимость в Калмыкии? Проще совместить две эти операции с помощью логического оператора And:

33. ОБЛАСТЬ = ”Калмыкия” and СТОИМОСТЬ >= 250000

Теперь MapInfo будет проводить две проверки для каждой записи: является ли "Область" Калмыкией? Равна или превосходит "Стоимость" значение 250 000? И если ответ на оба вопроса утвердительный, запись попадет в выборку. Если же хотя бы один ответ "нет", то запись не войдет в выборку.

Теперь, если Вам нужно выбрать недвижимость стоимостью более $250 000, которая находится за пределами Калмыкии, Вы можете использовать оператор Not перед первой частью выражения 32 и получить выражение 33:

34. Not(ОБЛАСТЬ=”Калмыкия”) and СТОИМОСТЬ>=250000

Первой части выражения 33 удовлетворяют только те записи, которые не относятся к Калмыкии. Рассмотрим также выражение 34:

35. Not ОБЛАСТЬ=”Калмыкия” and СТОИМОСТЬ>=250000) Выражение 34 – это просто отрицание всего выражения 32. Все записи, не удовлетворяющие 32, будут удовлетворять 34. И наоборот, все записи, не удовлетворяющие 34, будут удовлетворять 32.

Для объединения независимых условий можно использовать оператор Or:

36.ОБЛАСТЬ=”Калмыкия” or ОБЛАСТЬ=”Бурятия”

Ввыборку по данному условию войдут записи, относящиеся к любой из двух указанных областей. Можно, конечно, соединять с помощью Or и числовые выражения:

37.ПЛОЩАДЬ>400 or СТОИМОСТЬ>250000

Здесь проверяется, что площадь больше 400 тыс. кв. км и стоимость больше $250 000. Если выполнено хотя бы одно из этих двух условий, запись помещается в выборку.

Нужно внимательно составлять выражения с логическими операторами. Например, следующее выражение, которое на первый взгляд составлено правильно, не будет работать:

38. ОБЛАСТЬ=”Калмыкия”or”Бурятия”

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

499

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

По нормам грамматики фраза "ОБЛАСТЬ есть Калмыкия или Бурятия" не отличается по смыслу от выражения 35. Но правила компьютерной логики и естественного языка несколько различаются.

MapInfo читает выражения слева направо. Программе надо определить, как в сложном выражении сгруппированы простые выражения. Представить, как идет такая группировка, можно, расставив скобки в выражениях. MapInfo читает выражение 38 так же, как и выражение 35 – и это правильно отражает смысл нашего запроса. Выражение 37 MapInfo читает так, как показано в выражении 39, – смысл совсем не тот, который мы вкладывали в запрос.

39.(ОБЛАСТЬ=”Калмыкия”) or (ОБЛАСТЬ=”Бурятия”)

40.(ОБЛАСТЬ=”Калмыкия”) or (”Бурятия”)

Оба выражения (38 и 39) имеют одинаковую первую часть (первое предложение). Но вторые предложения (после Or) совершенно различны. Второе предложение выражения 39 – просто строка символов “Бурятия”. По правилам MapInfo, всем непустым строкам при вычислении их значения ставится в соответствие "True". Поэтому при вычислении выражения 39 MapInfo включит все непустые записи в выборку. Причем результат первой проверки не будет иметь влияния на общий результат, т.к. значение второго предложения для всех непустых записей будет "True" и, следовательно, значение всего выражения будет

"True".

Наконец, рассмотрим пример с отрицанием выражения 35: 41. Not(ОБЛАСТЬ=”Бурятия” or ОБЛАСТЬ=”Калмыкия”)

Выражению 35 удовлетворяют записи для Бурятии и Калмыкии, но не для Мордовии или Хакасии, а выражению 40 – все области, кроме Бурятии или Калмыкии, в том числе Мордовия и Хакасия.

Предложения с числами

Допустим, необходимо выбрать все записи о людях, доход которых составляет более $1000 в месяц и средний возраст которых равен 42 годам:

42. ДОХОД>=1000 and Round(СР_ВОЗРАСТ, 1)=42

Как видно, данное выражение состоит из двух предложений. Они соединены оператором And. Это означает, что для того, чтобы запись попала в выборку, оба предложения должны принимать значение "True".

А теперь найдем все товары, цена которых составляет от 50 000 до 100 000 рублей:

43. ЦЕНА>=50000 and ЦЕНА<=100000

Здесь заданы два условия, которые должны быть выполнены для записей выборки. Используя операторы “больше или равно” (>=) и “меньше или равно” (<=), мы обеспечиваем попадание записей с ценами, в точности равными 50 000 и 100 000 рублей, в выборку. Если бы мы указали “больше” (>) и “меньше” (<), то были бы выбраны записи с ценами от 50 001 до 99 999 рублей, а товары с ценами, равными 50 000 и 100 000 рублей, не попали бы в выборку.

Выберем товары, стоимость которых составляет или 50 000-100 000 рублей, или 150 000200 000 рублей:

44. (ЦЕНА>=50000 and ЦЕНА<=100000) or (ЦЕНА>=150000 and ЦЕНА<=200000)

Это сложное выражение вида: (выражение1) или (выражение2). Каждое из двух выражений имеет вид выражения 42. Если запись удовлетворяет хотя бы одному условию, она попадает в выборку.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

500

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)Глава 15: Специальные разделы о работе с MapInfo Pro-

Предложения со строками

Пусть требуется выбрать всех покупателей, начальные буквы фамилий которых лежат в диапазоне от "Н" до "У".

45. ФАМИЛИЯ >= ”Н” and ФАМИЛИЯ <”Ф”

Первая часть выражения проверяет фамилии на равенство или превышение "Н". Вторая часть выражения проверяет, меньше ли они в лексикографическом смысле, чем "Ф". Таким образом, любая фамилия, начинающаяся на "Н" и заканчивающаяся на "У", удовлетворяет этим условиям.

Можно выбрать всех покупателей, чьи фамилии начинаются на "Н" и заканчиваются на "Я": 46. ФАМИЛИЯ >= ”Н”

Поскольку "Я" – последняя буква алфавита, проводить проверку "снизу" не надо. Покупатель с фамилией, которая по алфавиту идет после фамилий на букву "Я", Вам никогда не встретится.

Атеперь выберем покупателей, фамилия которых начинается на "В":

47.ФАМИЛИЯ>=”В” and ФАМИЛИЯ<”Г”

Здесь используется тот же алгоритм, что и в выражении 44.

Найдем всех покупателей, чьи фамилии находятся между "Се" и "Су": 48. ФАМИЛИЯ=>”Cе” and ФАМИЛИЯ<”Cу”

Здесь используется тот же алгоритм, что и в выражении 44.

Выберем все записи, которые не относятся к такому субъекту Федерации, как ХантыМансийский АО:

49. Not ОБЛАСТЬ=”ХМАО”

Это выражение задает проверку значений в колонке "ОБЛАСТЬ". Если значение в ней отличается от "ХМАО", то запись попадает в выборку.

Предложения с датами

Пусть требуется выбрать все данные о товарах, которые были доставлены в августе 1990 года:

50.Month(ДОСТАВЛЕНО)=8 and Year(ДОСТАВЛЕНО)=1990

Вэтом выражении мы однозначно указываем год, используя функцию "Year(<колонка>)".

51.ДОСТАВЛЕНО>=”8–1–90” and ДОСТАВЛЕНО<=”8–31–90”

Вэтом выражение мы вместо явного указания месяца и года используем формулировку, которая по-русски звучала бы так: “Записи о получении с 1 августа 1990 года по 31 августа 1990 включительно”. Выражения 49 и 50 дают одинаковый результат.

Выберем все записи о доставке товара в июле или сентябре.

52. Month(ДОСТАВЛЕНО)=7 or Month(ДОСТАВЛЕНО)=9

Как и в предыдущем примере, год не указан явно. Это может создать проблемы, если Вы имеете в виду конкретный год, а в таблице хранятся данные за несколько лет. Если Вы хотите указать год, то постройте следующее выражение (например, для 1989 года):

53.Month(ДОСТАВЛЕНО)=any(7, 9) and Year(ДОСТАВЛЕНО)=89

Впервом предложении этого выражения использовано ключевое слово Any, которое будет описано ниже. Первое предложение принимает значения, если месяц равен одному из параметров в скобках – в нашем случае, июлю или сентябрю.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

501

MI_UG.PDF

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]