Группировка записей и суммирование значений в представлении

Группировка записей в представлениях и вычисления с использованием статистических функций, в том числе суммирование, выполняются так же, как в запросах базы данных Access .
Вместо строки Групповая операция (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.

 

Использование подчиненных представлений
Подчиненные запросы обычно используются в предложении WHERE для определения условий выборки и в предложении FROM, если нужно определить некоторый результирующий набор в качестве источника данных для представления. Создать представление, содержащее подчиненное представление, можно либо путем ввода инструкции SQL на панели запроса SQL, либо с помощью бланка представления. Если вы недостаточно свободно владеете языком SQL, используйте второй способ.
Сначала создайте подчиненное представление. Для этого, получив на панели запроса SQL необходимую инструкцию и протестировав соответствующий запрос (используя кнопку Запуск (Run) на панели инструментов), скопируйте его в буфер.
Создайте второе представление и вставьте выражение из буфера в предложение FROM или WHERE на панели SQL. Вы можете получить инструкцию SQL, например, такого вида:
SELECT SupplierName, ProductName
FROM Products
WHERE Supplier-ID IN
(SELECT SupplierID
FROM Suppliers
WHERE (Country = ‘UK’))
 
Параметры в инструкциях SQL
В представлении параметры использовать нельзя, однако их можно использовать в инструкциях SQL. которые являются источниками записей в формах и отчетах. То есть можно в свойстве Источник записей (RecordSource) формы или отчета ввести предложение SQL, которое содержит один или несколько параметров. Эти параметры будут либо запрашиваться у пользователя при открытии формы, либо устанавливаться равными текущему значению заданного элемента управления формы. Покажем на примере, как создаются такие формы. Возьмем форму "Products" (Товары) и будем выбирать в ней только те продукты, цена которых выше заданного значения. Это значение и будет параметром.

  1. Откройте форму "Products" в режиме Конструктора и диалоговое окно свойств формы. В качестве источника записей для этой формы используется таблица "Products". Нажмите кнопку Построителя справа от ячейки Источник записей (RecordSource). Появится сообщение, спрашивающее, действительно ли вы хотите построить запрос на базе таблицы. Нажмите кнопку Да (Yes). Откроется окно Конструктора запросов. На панели схемы запроса уже размещена таблица "Products".
  2. С помощью кнопок на панели инструментов отобразите все три панели запроса: схему, бланк и запрос SQL. Переместите границы панелей таким образом, чтобы их все хорошо видеть.
  3. В бланке запроса уже стоит символ звездочки (*), который означает, что в результирующий набор включаются все поля таблицы. Установите флажок с названием поля "UnitPrice" (Цена) на панели схемы запроса. Это поле появится в бланке запроса. Сбросьте флажок в столбце Вывод (Output), чтобы не включать это поле в результирующий набор (оно уже включено символом звездочки). В столбце Критерий (Criteria) введите выражение >? . Символ "?" в предложении WHERE и является обозначением параметра.
  1. Установите флажок у поля "ProductName" (Марка), чтобы добавить его в запрос, и сбросьте флажок в столбце Вывод (Output) бланка запроса. В столбце Тип сортировки (Sort Type) выберите из списка По возрастанию (Ascending), чтобы отсортировать записи по наименованию продукта в прямом алфавитном порядке .
  2. Закройте окно Конструктора запроса. Подтвердите сохранение внесенных изменений.
  3. Переместите курсор в ячейку Входные параметры (Input Parameters) диалогового окна свойств формы и введите выражение Price money= [Введите пороговую цену], где Price— имя параметра; money— тип данных. Выражение справа от знака равенства определяет строку, которая будет выводиться для пользователя при запросе параметра. Вместо этого выражения можно использовать ссылку на элемент управления формы, например Form! [Критерии выборки] ! [Цена].