Главная страница

КР Информационные системы в экономике. 1. Рынок информационных услуг. Правовое регулирование на информационном рынке


Скачать 1.49 Mb.
Название1. Рынок информационных услуг. Правовое регулирование на информационном рынке
АнкорКР Информационные системы в экономике
Дата06.03.2023
Размер1.49 Mb.
Формат файлаdocx
Имя файлаКР Информационные системы в экономике.docx
ТипДокументы
#972494
страница4 из 5
1   2   3   4   5

Группаиспользуется для группировки записей;

  • Пол и Код экзамена — служит для отбора нужных записей в группах;

  • Оценка — по этому полю производится групповая операция Avg (вычисление среднего значения среди оценок по информатике).

    Результат выполнения запроса представлен на рис. 2.29.



    Рисунок 2.29 - Итоговый результат

    Чтобы получить значения средних баллов в таком (отформатированном) виде

    необходимо настроить свойства итогового поля Оценка. Для этого нужно щелкнуть правой кнопкой мыши по полю Оценка, открыть список его свойств и установить для свойства Формат поля значение Фиксированный, для свойства Число десятичных знаков — 2, а для свойства Подпись — Средний балл (см. рис. 2.30).



    Рисунок 2.30 - Установка свойств поля Оценка

    2.6.2 Отбор групп

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

    Пример 2.14. Определить группы, в которых учится более 16 студентов.

    Для этого достаточно добавить в поле Число студентов бланка запроса из примера 2.10 (см. рис. 2.25) условие отбора: > 16. В результате выполнения этого запроса будут найдены номера учебных групп.

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



    Рисунок 2.31 - Использование функции Count(*)

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

    Пример 2.15. Определить учебные группы, имеющие по информатике более высокий средний балл, чем на курсе в целом.

    Запрос использует информацию из таблиц Студенты (номера групп) и Сессия (оценки). В бланк итогового запроса следует включить следующие поля (см. рис. 2.32):



    Рисунок 2.32 - Использование функции Davg в условии отбора

    • Группа — используется для группировки записей;

    • Оценка — используется как итоговое поле для подсчета средних оценок в группах, а также для отбора нужных групп записей;

    • Код экзамена — это поле служит для отбора записей в группах (код экзамена по информатике равен 1).

    Условие отбора групп выглядит так:

    >DAvg("[Оценка]";"Сессия";"[Код экзамена]='1'")

    Результат вычисления значения функции DAvg — средний балл по информатике на курсе.

    Для нахождения среднего балла на курсе можно также использовать подчиненный запрос. В этом случае условие отбора в поле Оценка будет таким:

    >(SELECT DISTINCTROW Avg(Сессия.Оценка) AS Avg_Оценка

    FROM Сессия WHERE (((Сессия.[Код экзамена])="1"));)

    Пример 2.16. Определить общую сумму стипендии, полученной студентами групп 9701-9703 в сентябре, октябре и за оба месяца.

    Так как информация о распределении студентов по группам содержится в таблице Студенты, а информация о стипендии — в таблице Стипендия, то создание запроса начнем с включения этих таблиц в окно конструктора. Они связываются по полю Код студента. Затем нужно щелкнуть по кнопке Групповые операции и включить в бланк запроса поле Группа, которое будет использоваться для группировки записей. Для отбора нужных групп следует ввести условие < 9704 или другое равносильное ему условие, например, 9701 Or 9702 Or 9703.

    Следующий шаг — создание итоговых полей, подсчитывающих суммарную стипендию за каждый месяц. Для этого нужно включить соответствующие поля в бланк запроса, выбрать в качестве групповой функции Sum и заменить названия, которое Access дает итоговым полям (Sum_<месяц>) на более подходящие.

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

    Nz([Стипендия]![Сентябрь])+Nz([Стипендия]![Октябрь])

    и выберем в качестве групповой функции Sum. Это поле тоже нужно переименовать и, вызвав его свойства, установить ему в качестве формата вывода значений Денежный. Результаты запроса представлены на рис. 2.33.



    Рисунок 2.33 - Стипендия за два месяца

    Интересно, что Access модифицировал созданный нами запрос, внеся следующие изменения в итоговое поле Всего (см. рис. 2.34):



    Рисунок 2.34 - Отбор групп в итоговом запросе

    • выражение, которое вычисляется в этом поле, заменено выражением Sum(Nz([Стипендия]![Сентябрь])+Nz([Стипендия]![Октябрь]))

    • в строке Групповая операция групповая функция Sum заменена групповой операцией Выражение.5

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

    2.7 Перекрестные запросы

    Перекрестный запрос — это итоговый запрос специального типа, выводящий результат в виде перекрестной таблицы, похожей на электронную таблицу.

    Для создания перекрестной таблицы нужно указать:

    • заголовки строк — одно или несколько полей, значения которых будут использованы в качестве заголовков строк таблицы;

    • заголовки столбцов — поле, значения которого будут использованы в качестве заголовков столбцов;

    • значения — числовое поле, значения которого будут использованы для проведения итоговых расчетов;

    • групповую операцию — групповую функцию, задающую тип итоговых расчетов, или выражение, содержащее групповые функции.

    Построение перекрестной таблицы производится примерно по такой схеме. Access производит группировку данных по групповым полям, которые также служат заголовками ее строк и столбцов. Групповая операция проводится над числами, содержащимися в поле значений. Итоговое значение для данной группы помещается в ячейку таблицы, находящуюся на пересечении строк и столбца, названия которых берутся из соответствующих групповых полей. Часть ячеек перекрестной таблицы могут оказаться пустыми (содержащими значение Null). Это обстоятельство необходимо учитывать при создании выражений, включающих поля перекрестной таблицы.

    Перекрестные запросы обычно используются при создании диаграмм и отчетов. Сохранить перекрестную таблицу в виде обычной таблицы Access с помощью запроса на создание таблицы нельзя.

    2.7.1 Мастер Создание перекрестных таблиц

    Для создания перекрестного запроса можно воспользоваться соответствующим мастером. При этом нужно иметь в виду, что он создает перекрестный запрос на базе полей одной таблицы/запроса, причем группировка проводится по всем записям. Если для создаваемого перекрестного запроса такая таблица/запрос не существует, то следует сначала создать запрос, содержащий всю необходимую информацию, и лишь затем воспользоваться услугами мастера. Рассмотрим работу мастера на следующем примере из БД Книги.

    Пример 2.17. Требуется создать запрос, содержащий сведения о количестве книг, проданных продавцами в каждом квартале и за весь 1997 год.

    Так как нужная информация находится в разных таблицах, создадим запрос, который будет использован мастером в качестве источника данных при построении перекрестной таблицы. Для этого поместим в окно конструктора таблицы Продавцы и Заказы. Access свяжет их по полю Код продавца. В бланк запроса включим поле Код продавца, а также поля Количество и Дата отправки со сведениями о количестве книг в заказе и дате его отправки. Создадим вычисляемое поле Продавец, содержащее фамилии и имена продавцов. Для этого в пустую ячейку строки Поле введем выражение Продавец: [Фамилия] & " " & [Имя]. В поле Дата отправки введем условие отбора заказов, выполненных в 1997 году, и сохраним запрос под именем «Заказы 1997 года» (см. рис. 2.35).



    Рисунок 2.35 - Бланк запроса с информацией для мастера

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

    1. Мастер предлагает указать таблицу или запрос, поля которых будут использованы в создаваемом запросе. В списке запросов нужно найти запрос «Заказы 1997 года» и щелкнуть по кнопке Далее >.

    2. Мастер просит указать поля, значения которых будут использованы в качестве заголовков строк (не более трех). Выберем в левом окне, содержащем список доступных полей, поля Код продавца и Продавец, перебросим их с помощью кнопки > в правое окно и перейдем к следующему окну диалога.

    3. Мастер просит указать поле, значения которого будут использованы в качестве заголовков столбцов. Выберем поле Дата отправки.

    4. Так как выбранное поле имеет тип Дата/Время, то мастер предлагает выбрать временной интервал, с которым нужно сгруппировать данные в этом поле. Выберем Квартал.

    5. На этом этапе мастер просит указать итоговое поле и групповую функцию. Выберем поле Количество, а в качестве групповой функции укажем Sum. Здесь же предоставляется возможность указать, нужно ли включать в таблицу итоговое значение по каждой строке. Поскольку мы хотим включить в таблицу данные об общем числе книг, проданных каждым продавцом, нужно оставить «галочку» во флажке с подписью Да. В противном случае «галочку» нужно убрать.

    6. В заключение мастер предлагает дать имя созданному запросу и указать действия после его создания. Назовем запрос «Работа продавцов в 97 году» и выберем просмотр результатов запроса.

    Созданная таблица имеет лишь один недостаток: столбец с итогами работы каждого продавца за год получил название Итоговое значение Количество. Для его устранения перейдем в режим конструктора и заменим имя соответствующего поля в бланке запроса на имя За год. Затем перейдем в режим таблицы и переместим этот столбец в конец таблицы. Сохраним все сделанные изменения. Теперь итоговая таблица имеет такой вид (см. рис. 2.36):



    Рисунок 2.36 - Итоги работы продавцов в 1997 году

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

    2.7.2 Создание перекрестного запроса без помощи мастера

    Для создания перекрестного запроса вручную необходимо:

    1. Выбрать в окне Новый запрос пункт Конструктор.

    2. Включить в верхнюю часть окна конструктора все таблицы и запросы, данные которых будут использованы в создаваемом запросе.

    3. На панели инструментов нажать кнопку Тип запроса и выбрать Перекрестный. В бланке запроса появятся две дополнительные строки: Групповая операция и Перекрестная таблица.

    4. Добавить поля в строку Поле в бланке запроса и создать, если нужно, дополнительно вычисляемые поля. Все поля вначале будут получать в строке Групповая операция значение Группировка.

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

    6. Для поля, значения которого будут использованы в качестве заголовков столбцов, нужно в строке Перекрестная таблица задать значение Заголовки столбцов и оставить в строке Групповая операция значение Группировка.

    7. Для поля, значения которого будут использованы при создании перекрестной таблицы, нужно в строке Перекрестная таблица задать значение Значения, а в строке Групповая операция выбрать групповую функцию, используемую для вычисления значений перекрестной таблицы (например, Sum или Count).

    8. Чтобы отобрать нужные заголовки строк или столбцов, следует ввести выражение, задающее условие отбора в строку Условие отбора для соответствующих полей-заголовков в ячейке строки Перекрестная таблица.

    Если нужно исключить некоторые записи до вычисления значений перекрестной таблицы, то следует добавить в бланк запроса поле или поля, которые будут использованы для отбора нужных записей. Для создания условия отбора по данному полю нужно выбрать в строке Групповая операция значение Условие и ввести условие в строку Условие отбора. Ячейка в строке Перекрестная таблица должна быть пустой.

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

    Пример 2.18. Создадим перекрестный запрос Средние баллы по группам. Его результатом должна быть таблица, столбцами которой являются средние баллы в группах по данному экзамену, а заголовками столбцов служат названия экзаменов (см. рис. 2.37).



    Рисунок 2.37 - Перекрестная таблица Средние баллы по группам

    В этом запросе используются данные из таблиц Студенты, Сессия и Экзамены. После их добавления в окно конструктора укажем тип создаваемого запроса: Перекрестный. Затем включим в бланк запроса следующие поля: Группа, Экзамен и Оценка. Каждое из них получит в строке Групповая операция значение Группировка. Так как значения из поля Группа будут служить заголовками строк, выберем для него в строке Перекрестная таблица значение Заголовки строк. Соответственно для поля Экзамен выберем для него в этой строке значение Заголовки столбцов. Поле Оценка используется для подсчета среднего балла. Поэтому выберем для него в строке Групповая операция значение Avg, а в строке Перекрестная таблицаЗначение. Чтобы значения таблицы выдавались в отформатированном виде, зададим следующие свойства этого поля: для Формат поляФиксированный и для Число десятичных знаков — 2.

    Сохраним созданный запрос под именем Средние баллы по группам (см. рис. 2.38).



    Рисунок 2.38 - Бланк запроса Средние баллы по группам

    2.7.3 Использование вычисляемых полей в перекрестном запросе

    В перекрестном запросе наравне с обычными полями в качестве заголовков могут использоваться вычисляемые поля.

    Пример 2.19. Создадим перекрестный запрос Итоги сессии на курсе. Итоговая таблица должна содержать ФИО студентов, номера их учебных групп, номера зачетных книжек и оценки по экзаменам. Информация в ней должна быть отсортирована по группам, а затем по фамилиям (рис. 2.39).



    Рисунок 2.39 - Бланк запроса Итоги сессии на курсе

    В этом запросе также используются данные из таблиц Студенты, Сессия и Экзамены. Добавим их в окно конструктора и укажем тип создаваемого запроса: Перекрестный. Затем включим в бланк запроса следующие поля: Группа, Код студента, Экзамен и Оценка. Зададим для первых двух полей в строке Перекрестная таблица значение Заголовки строк, а для поля ЭкзаменЗаголовки столбцов. Для поля Оценка укажем в качестве групповой операции First, а для строки Перекрестная таблицаЗначение. Выбор групповой операции в данном случае особой роли не играет (можно взять Sum или Avg), так как после группировки записей в поле значений каждой группы содержится не более одного числа (оценки студента по экзамену).

    Создадим вычисляемое поле ФИО, и также выберем для него в строке Перекрестная таблица значение Заголовки строк. Разместим это поле после поля Группа и зададим в полях Группа и ФИО сортировку по возрастанию. Для поля Код студента зададим в качестве свойства Подпись значение № зач_кн. На этом создание запроса завершено. Сохраним его под именем Итоги сессии на курсе (рис. 2.40).



    Рисунок 2.40 - Итоги сессии на курсе
    1   2   3   4   5


  • написать администратору сайта