
 
54
В бланке запроса появятся новые строки «Групповая операция» и «Перекрест-
ная таблица». Для первых двух столбцов выберем групповую операцию «груп-
пировка» (чтобы  не  повторялись  названия  строк  и  столбцов),  для  третьего – 
«Count» (подсчет количества). Укажем, что значения поля «Фамилия» (первый 
столбец)  образуют  заголовки  строк,  поля «Название» - заголовки  столбцов,  а 
поля «Код журнала
» - значения внутри таблицы (рис. 3.43). 
 
 
 
Все, перекрестный запрос  создан. Результат  его работы был  показан ранее 
на рис. 3.40. В ячейках таблицы отображается количество подписок, оформлен-
ных клиентом (указанным в названии строки) на журнал (указанный в названии 
столбца). Поскольку в таблице «Подписка» поля «КодКлиента» и «КодЖурна-
ла»  образуют  первичный  ключ (их  комбинации
  не  могут  повторяться  внутри 
таблицы), Значения, отображаемые в созданном перекрестном запросе, должны 
быть равны только «1». Впрочем, это правило может быть нарушено, если у не-
скольких  клиентов  будут  одинаковые  фамилии,  или  у  нескольких  журналов – 
одинаковые  названия.  Внесем  в  созданный  запрос  некоторое «эстетическое» 
усовершенствование для демонстрации применения групповой операции «Вы-
ражение» и 
функции IIF(). Пусть в ячейках таблицы отображается не количе-
ство подписок клиента на журнал, а знак «+», если это количество больше нуля. 
Заменим  в  третьей  колонке  бланка  запроса  групповую  операцию «Count» на 
«Выражение» и в строке «Поле» запишем следующее выражение: 
IIf( Count( Подписка.КодЖурнала )>0; "+"; "") 
Функция IIf() будет возвращать знак «+» для групп, для которых 
значение, 
возвращаемое  функцией Count(), больше «0». Для  остальных  групп  возвраща-
ется пустая строка. Функция Count(), как и раньше, присутствует в запросе, но 
теперь она является частью более сложного выражения. На рис. 3.44 показаны 
новый  вид запроса и результат  его  работы. «ДаНет» - имя  поля,  содержащего 
выражение. Оно не играет особой роли, поскольку нигде не отображается.  
Некоторые
  из  приведенных  выше  примеров  запросов  были  упрощены  для 
большей наглядности и могут быть непригодны для использования в реальных 
базах данных. 
 
 
Рис. 3.43. Перекрестный запрос