После того, как вы открыли системное окно Дизайнера Запросов и выбрали Таблицу или Предсталение, содержащие требуемую вам Информацию (данные), вы можете определить Результирующий Набор Элементов (Results). Как минимум, вы должны выбрать, указать одно, требуемое вам Поле. Вы можете также задать порядок следования выбранных Полей результирующего Набора, определить Фильтр (условие) выборки требуемых Данных.

Выбор требуемых Полей из Таблиц.

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

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

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

Для добавления Поля в результирующий набор Запроса:

  • Выберите имя требуемого Поля, и нажмите Кнопку Add (Добавить).

    -или-

  • Перетащите (Drag-And-Drop) выделенное Поле в Список Selected fields (Выбранные Поля).

Выбор Всех доступных Полей в Результирующий Набор

Вы можете выбрать Все поля, по-очереди (по-одному) или использовать имеющийся шаблонный символ (звездочка) (*). Если вы выбираете Поля по-именам, то их точные имена включаются в Набор Запроса . Если после однократного выполнения Запроса, добавить в Таблицу новые Поля, они уже не включаются автоматически в результирующий Набор, структуру Запрса необходимо уточнить.

Если вы используете шаблонный символ для включения всех Полей, то все доступные, в данный момент, поля таблицы включаются в результирующий набор Запроса. Если структура Таблицы изменится (добавятся новые поля, удалятся старые), результирующий Набор Запроса остается Актуальным.

Для добавления всех доступных Полей в результирующий набор Запроса:

  • Выберите опцию  Add All - для добавления полей по-Именам.

    -или-

  • Перетащите (Drag-And-Drop) символ звездочка (*) в Список выбранных Полей Selected fields.

Отображение Псевдонима (Заголовка) для выбираемых Полей

Вы можете значительно улучшить читаемость Результирующих Наборов Запроса определяя описательные Заголовки для каждого Столбца. Например, вы можете задать значение заголовка "SumMaxOrd" для столбцы, в котором вычисляется выражение: SUM(MaxOrdAmount).

Для добавления Псевдонима к Имени Поля:

  1. В текстовом поле Functions and expressions, укажате требуемое Поле или Выражение, а в текстовом поле AS (Как) укажите Псевдоним, как в следующем Примере:

      CopyCode imageКопировать Код
    SUM(maxorderamt) AS SumMaxOrd
  2. Нажмите кнопку Add - для размещения заданного Поля в результирующем Наборе (Списке) Selected fields.

Определение порядка размещения Полей в Результирующем Наборе Запроса:

Порядок следования Полей Набора Запроса меняется имеющимся Инструментом Списка.

Для изменения порядка следования Полей в Наборе Запроса:

  • Перетащите (Drag-and-Drop) указатель Поля, расположенный слева от его Имен, вверх или вниз; изменения выполняются последовательным обменом местами соседних Полей (инструментарий: Mover Box).

Для изменения порядка Сортировки результирующих Наборов (по-записям) рекомендуется использовать Закладку Order By.

Выборка Требуемых Записей Данных

Выборка требуемых вам Записей из результирующего Набора - ключевой (основополагающий) момент построения вашего Запроса. С помощью Закладки Filter системного окна Дизайнера Запросов, вы можете сформулировать секцию WHERE, с помощью которой уточняются самые необходимые вам Данные, определяется Условие выборки данных.

С помощью данного Инструмента вы можете определить Фильтр некоторого подмножества выбираемых Записей, которые будут включены в результирующий Набор Запроса: Например, вам требуется информация о всех Клиентах, имеющих самый большой Баланс мредств, или Все Клиенты, которые размещены в некотором Регионе, или имеют определенные почтовые Коды, ну и так далее. Для того, чтобы отобрать только необходимые вам Записи Данных, вы должны построить (сфоормулировать) условие выборки (Фильтр).

В системе Visual FoxPro, вам рекомендуется использовать Закладку Filter, в которой задается базовое Поле из Набора Запроса, определяется Оператор Соравнения, и некоторая Константа, определяющая суть Отбора требуемых Записей (с которой выполняется сравнение базисного Поля).

Для определения Фильтра Выборки

  1. Из Списка Field Name (Имена Полей), выберите поле, которое будет являться базовым для определения Фильтра выбираемых Записей.

    NoteПримечание

    Вы не можете использовать в качестве базовых для Фильтра поля типа General или Memo.

  2. Из Списка Criteria (Критерий), выбирается тип оператора Сравнения.

  3. В соответствующем текстовом поле вводится вариант значения Sample (Пример).

    • Кавычки или апострофы можно использовать только для символьных данных, при этом базисное поле должно быть соответствующего типа ("C"); для других типов данных кавычки не используются.

    • Если вам требуется ввести Дату, то ее также не заключайте в Скобки.

    • Для Логических Данных указывайте ведущую и окончательную точки, как в примере (.T.).

    • Если вы вводите имя некоторого поля, Visual FoxPro предполагает, что это имя поля доступно в среде окружения.

  4. Если вам не требуется точное сравнение символьных данных, то установите соответствующий режим сравнения, кнопка Case.

Если вам требуется выполнить Реверс логического выражения, рекомендуется использовать логический оператор Not, кнопка которого также представлена. Например, если вам требуются данные о всех Клиентах, исключая Штат "Washington", можно использовать следующее логическое выражение:

  CopyCode imageКопировать Код
Customer.region Not Like WA

Для получения подробной информации о построении сложных Фильтров смотрите раздел  Закладка Filter. Информацию по "Тонкой настройке фильтрующих выражений" смотрите в разделе: Как: Настроить Запросы SQL.

Если для выборки Данных вы используете несколько исходных Таблиц или Представлений, вы можете значительно расширить спектр ваших Поисковых Выражений (Фильтров); использовать Констрyкции Объединения JOIN.

Выбор Количества или Процента обработанных Записей

Если вам требуется только некоторое число иои определенный процент от общего количества Записей в результирующем наборе Запроса, вы можете использовать дополнительную секцию Top, которая определяется в Закладке Miscellaneous (Прочее) Дизайнера Запросов или Представлений; или на-прямую определить указанную секцию TOP в вашем операторе SQL SELECT. Для рассматриваемого ограничителя выбираемых Записей можно задавать значения от =1, до =32,767; или в процентах: от =0.01, до =99.99. В этом случае система Visual FoxPro сначала выборку и сортировку Записей, а за тем - извлекает указанный диапазон Записей (определенный по количеству или в пролцентах).

Для ограничения количества возвращаемыз Записей

  1. В системном окне Query Designer (Дизайнера Запрсов), активируйте закладку Miscellaneous (Прочее).

  2. В области Top, снимите отметку All (Все), или определите новый Ограничитель для Top.

  3. Выполните один из следующих вариантов:

    • В специальном боксе Number of records (Количество Записей), введите или выберите максимальное значение Ограничителя возвращаемых Записей Результирующего Набора Запроса.

    -или-

    • Нажмите кнопку Percent (Проценты), для переключения специального бокса Number of records для единиц в процентах Percentage, тем самым, далее вы можете определить максимальное значение Ограничителя, выражаемое в процентах (а не в целых числах количества возвращаемых Записей).

Например, если вам требуется выбрать 10 Клиентов, у которых наибольший Баланс Показателей (экономических) (Highest Order Amounts), вам требуется определить секцию оператора SQL GROUP BY для поля CUST_ID, которая обеспечит группировку Записей по каждому Клиенту (код которого определяет указанное Поле); и задать признак Сортировки по полю Экономического показателя (ORDER_AMT) в соответствующей секции ORDER BY. Для получения первых 10 соответствующих Записей (Клиентов, вам нужно выполнять сортировку по указанному полю, тогда наилучшие результаты будут сгруппированы в начале Списка (Набора). Если вы будете использовать сортировку по-возрастанию (Ascending), то получите самые низшие результаты по Экономическим показателям Клиентов, поэтому используется сортировка по-убыванию (Descending). Далее приводится программный Код описанного примера (базовый оператор SQL).

  CopyCode imageКопировать Код
SELECT TOP 10 *;
FROM testdata!customer INNER JOIN testdata!orders ;
ON Customer.cust_id = Orders.cust_id;
GROUP BY Customer.cust_id;
ORDER BY Orders.order_amt DESC

См. также