Работа с запросами
Способы объединения таблиц в представлении
Так же как и в запросах в базе данных Access, можно создавать разные типы объединений таблиц:
- внутренние, когда из обеих таблиц отбираются только те записи, у которых совпадают значения связанных полей;
- внешние, когда в одной из таблиц выбираются все записи, а в другой – только связанные.
Существует три типа внешних объединений:
- левое внешнее объединение, когда выбираются все строки из левой таблицы;
- правое внешнее объединение, когда выбираются все строки из правой таблицы;
- полное внешнее объединение, когда выбираются строки из обеих таблиц.
По умолчанию используется внутреннее объединение таблиц. Если нужно изменить тип объединения, щелкните правой кнопкой мыши по линии связи (удобнее всего по ромбику в центре связи) и выберите соответствующую команду в контекстном меню. В представлении "Products by Category" (Товары по типам) (см. рис. 17.36) это будут команды:
- Выделить все строки с Categories (Select All Rows from Categories);
- Выделить все строки с Products (Select All Rows from Product).
Или можно выбрать из контекстного меню команду Свойства (Properties) и открыть диалоговое окно Свойства (Properties).
Флажки в группе Включить строки (Include rows) позволяют установить любой тип внешнего соединения между таблицами. При изменении типа соединения меняется значок на связи – дополняется ромб справа или слева до квадрата.
Как видно из рис. 17.38, записи в таблицах могут связываться не только по условию равенства связанных полей. Для связи можно использовать любой из операторов сравнения (>, <, >=, <= или 0). При изменении оператора сравнения он отображается на значке связи, таким образом, тип связи очень хорошо идентифицируется визуально. Кроме того, когда вы подводите курсор мыши к связи, появляется всплывающая подсказка, указывающая тип объединения, условие объединения и связанные поля.
Группировка записей и суммирование значений в представлении
Группировка записей в представлениях и вычисления с использованием статистических функций, в том числе суммирование, выполняются так же, как в запросах базы данных Access (см. разд. "Создание запроса с помощью Конструктора"гл. 4).
Вместо строки Групповая операция (Totals) в бланке запроса Конструктора запросов в проекте присутствует столбец Группировка (Group by). По умолчанию этот столбец скрыт. Для того чтобы вывести его на экран, нужно нажать кнопку Группировка (Group By) на панели инструментов. Столбец Группировка (Group by) добавляется в бланк представления, и для всех полей, включенных в представление, этому полю присваивается значение Группировка (Group by). Можно затем в отдельных строках заменить значение (Group by) необходимыми статистическими функциями (сумма – Sum, среднее – Avg, число значений – Count и т. д.). В результате на нижней панели соответствующим образом изменится инструкция SQL. Чтобы ввести условие на выборку записей, можно использовать две разновидности инструкции SELECT:
- если в столбце Группировка (Group by) установлено значение параметра WHERE, тогда в инструкцию SELECT добавляется, условие WHERE с критериями выборки;
- если столбец Группировка (Group by) имеет другие значения, тогда в инструкцию SELECT добавится условие HAVING.