КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Создание запросов 2 страница
¨ Примечание к бланку QBE (табл. 2.32). В БД отсутствует поле с датой выполнения заказа. Однако его значение можно получить по значениям других полей, имеющихся в БД. Данный запрос называется запросом с вычисляемым полем, так как в бланк QBE кроме полей, выбранных из таблиц, добавляется еще одно поле (Дата выполнения), которое получается путем вычислений по следующей формуле: [Дата] + [Количество дней].
Таблица 2.32. Макет бланка QBE
Продолжение табл. 2.32
Для создания вычисляемого поля Дата выполнения можно ввести приведенное выражение в строку Поле в свободном столбце либо воспользоваться Построителем выражений (рис. 2.20). В этом случае нужно выполнить следующие действия: 1. Установить курсор в первый свободный столбец строки Поле бланка QBE. 2. Нажать кнопку Построить на панели инструментов.
Рис. 2.20. Создание вычисляемого поля 3. В открывшемся окне Построителя выражений записать приведенное выше выражение для расчета стоимости. Для того, чтобы автоматически создать данное выражение, следует раскрыть двойным щелчком папку Таблицы, активизировать таблицу Заказы, выбрать из списка поле Дата и нажать кнопку Вставить. Если поле Дата было внесено в бланк QBE заранее, то достаточно его активизировать и нажать кнопку Вставить. Знак + добавляется путем нажатия на одноименную кнопку в окне Построителя. Аналогично добавляется ссылка на поле Количество дней из таблицы Услуги. После этого нужно установить курсор в начало выражения, присвоить ему имя Дата выполнения и отделить двоеточием от самого выражения. Результат набора выражения приведен на рис. 2.20. 4. Заканчивается ввод выражения нажатием кнопки ОК. Чтобы обеспечить решение поставленной задачи, необходимо установить ограничение на созданное поле с помощью встроенной в Access функции Now(), возвращающей текущую дату. Для ее записи в строку Условие отбора можно использовать непосредственный ввод с клавиатуры либо снова воспользоваться кнопкой Построить на панели инструментов. В окне Построителя выражений необходимо последовательно открыть папки Функции, затем Встроенные функции, в списке функций активизировать функцию Now, входящую в категорию Дата/время, и нажать кнопки Вставить, а потом ОК. При выполнении запроса с данными таблиц 2.5–2.7 выходной набор окажется пустым. Чтобы проверить правильность реализации данного запроса и ряда следующих, где используется значение текущей даты, можно воспользоваться одним из предлагаемых ниже приемов: ¨ изменить текущую дату в настройках компьютера, присвоив ей значение даты последней квитанции (т. е. 5.06.01 для данного примера); ¨ в строке Условие отбора созданного столбца Месяц ввести выражение Month(#5.06.01#), т. е. везде вместо Now использовать значение даты #5.06.01#; ¨ ввести в БД несколько новых квитанций с датами, близкими к текущей системной дате компьютера. Результат выполнения запроса представлен в табл. 2.33.
Таблица 2.33. Результат выполнения запроса для текущей даты 05.06.01
Список заказов, выполненных за текущий месяц:
¨ Источник данных: таблицы Заказы, Услуги, Клиенты. ¨ Название запроса: Список заказов за текущий месяц. ¨ Примечание к бланку QBE (табл. 2.34). В данном запросе встречается распространенная в практических задачах ситуация, когда требуется создать вычисляемое поле и наложить на него условие отбора. Номер месяца определяется с помощью функции Month, параметром которой является какая-либо дата. Так как в БД могут находиться записи прошлых лет, то необходимо аналогично организовать сравнение по году. Результат выполнения запроса представлен в табл. 2.35.
Таблица 2.34. Макет бланка QBE
Продолжение табл. 2.34
Таблица 2.35. Результат выполнения запроса для текущей даты 05.06.01
Список заказов с номерами от 520 до 523 или за текущий месяц:
¨ Источник данных: таблицы Заказы, Услуги, Клиенты. ¨ Название запроса: Список заказов с номерами от 520 до 523 или за текущий месяц. ¨ Примечание к бланку QBE (табл. 2.36). Условие в запросе с вычисляемым полем может быть составным. В данном случае отдельные условия по различным полям объединяются операцией «или» и поэтому располагаются в разных строках бланка QBE. Результат выполнения запроса представлен в табл. 2.37.
Таблица 2.36. Макет бланка QBE
Продолжение табл. 2.36
Таблица 2.37. Результат выполнения запроса
Список услуг со стоимостью, увеличенной на несколько процентов (параметр запроса) относительно исходной:
¨ Источник данных: таблица Услуги. ¨ Название запроса: Список переоцененных услуг. ¨ Примечание к бланку QBE (табл. 2.38). Это комбинация запроса с параметром, названным на сколько процентов увеличить, и вычисляемым полем Новая стоимость, которое определяется выражением [Стоимость] × (100 + [на сколько процентов увеличить]): 100. Результат выполнения запроса представлен в табл. 2.39.
Таблица 2.38. Макет бланка QBE
Продолжение табл. 2.38
Таблица 2.39. Результат выполнения запроса
Общая стоимость услуг, оказанных каждому клиенту:
¨ Источник данных: таблицы Услуги, Клиенты, Заказы. ¨ Название запроса: Стоимость услуг клиентам. ¨ Примечание к бланку QBE (табл. 2.40). Данный вид запроса называется запросом с группировкой, так как в нем записи группируются (собираются) по условию группировки (по клиенту), а в пределах группы рассчитывается, например, общая стоимость всех оказанных ему услуг. Полученное значение попадает в результат выполнения запроса одной строкой (например, наименование клиента — общая стоимость оказанных ему услуг). Создание запроса с группировкой обеспечивается строкой Групповая операция в бланке QBE. Если она отсутствует, то необходимо нажать на одноименную кнопку на панели инструментов. В данном запросе записи группируются по полю Наименование клиента. Поэтому в строке Групповая операция напротив этого поля необходимо выбрать из раскрывающегося списка значение Группировка. Общий итог рассчитывается по полю Стоимость. Следовательно, в его столбце выбирается операция Sum, предназначенная для суммирования. Несмотря на то, что в выходном наборе нет ни одного поля из таблицы Заказы, она также должна быть указана в качестве источника данных, так как обеспечивает связь между таблицами Клиенты и Услуги.
Таблица 2.40. Макет бланка QBE
Результат выполнения запроса представлен в табл. 2.41.
Таблица 2.41. Результат выполнения запроса
Общая стоимость оплаченных заказов по услуге каждого вида:
¨ Источник данных: таблица Услуги, Заказы. ¨ Название запроса: Стоимость оплаченных услуг по видам. ¨ Примечание к бланку QBE (табл. 2.42). В результат выполнения запроса с группировкой могут попадать не все записи. Ограничение обеспечивается условием по необходимым полям. Для них в строке Групповая операция должно быть указано значение Группировка. В данном случае следует отобрать записи по значению Истина в поле Оплачено. Результат выполнения запроса представлен в табл. 2.43.
Таблица 2.42. Макет бланка QBE
Таблица 2.43. Результат выполнения запроса
Общая стоимость оплаченных услуг, оказанных за каждый месяц:
¨ Источник данных: таблицы Заказы, Услуги. ¨ Название запроса: Стоимость услуг за месяц по видам. ¨ Примечание к бланку QBE (табл. 2.44). Запрос с группировкой может быть создан на основе вычисляемого поля. Номер месяца возвращается функцией Month от поля Дата. Общий итог рассчитывается по полю Стоимость. Как и в предыдущем случае, необходимо еще ввести ограничение по оплате. Результат выполнения запроса представлен в табл. 2.45.
Таблица 2.44. Макет бланка QBE
Таблица 2.45. Результат выполнения запроса
Общая стоимость заказов, выполненных предприятием для каждого клиента по каждой услуге: ¨ Источник данных: таблицы Заказы, Услуги, Клиенты. ¨ Название запроса: Стоимость заказов по клиентам и услугам. ¨ Примечание к бланку QBE (табл. 2.46). В данном запросе необходимо сгруппировать данные по двум измерениям: строкам и столбцам. Задача решается с помощью запроса, называемого перекрестным. На пересечении каждой строки и каждого столбца рассчитывается итоговое значение, соответствующее заголовкам строки и столбца. После выбора необходимых таблиц в режиме Конструктора необходимо выполнить команду меню Запрос/Перекрестный. В результате ее выполнения в бланк запроса будут добавлены две новые строки: Групповая операция и Перекрестная таблица и убрана строка Вывод на экран. В строку Полебланка QBE нужно поместить те поля, содержимое которых будет использоваться в качестве заголовков строк перекрестной таблицы (в данном примере — это Наименование услуги), заголовков столбцов перекрестной таблицы (Наименование клиента) и расчетных значений (Стоимость). Напротив каждого из таких полей в строке Перекрестная таблица бланка QBE из раскрывающегося списка выбираются соответствующие значения: Заголовки строк, Заголовки столбцов, Значение. В данном запросе записи группируются по полям Наименование услуги и Наименование клиента, поэтому в строке Групповая операция напротив этих полей записывается слово Группировка. Общий итог рассчитывается по полю Стоимость. Следовательно, напротив этого поля в строке Групповая операция выбирается значение Sum, соответствующее операции суммирования. Результат выполнения запроса представлен в табл. 2.47.
Таблица 2.46. Макет бланка QBE
Таблица 2.47. Результат выполнения запроса
Общая стоимость оплаченных заказов, выполненных предприятием по каждой услуге за каждый месяц: ¨ Источник данных: таблицы Заказы, Услуги, Клиенты. ¨ Название запроса: Стоимость оплаченных заказов по услугам и месяцам. ¨ Примечание к бланку QBE (табл. 2.48). Поскольку необходима группировка по двум полям, то задача решается с помощью перекрестного запроса. Аналогично запросу с группировкой в перекрестных запросах можно использовать вычисляемые поля и условия на значения, что ниже и демонстрируется. Результат выполнения запроса представлен в табл. 2.49.
Таблица 2.48. Макет бланка QBE
Продолжение табл. 2.48
Таблица 2.49. Результат выполнения запроса
2.3.3.2. Активные запросы
Активные запросыприводят к изменению содержимого таблици структуры самой базы данных. Поэтому слева от имени такого запроса записывается восклицательный знак, предупреждающий об аккуратном использовании данного запроса. Порядок создания активных запросов почти ничем не отличается от создания запросов на выборку. Отличие состоит в том, что при создании такого запроса требуется дополнительно указать вид запроса (создание таблицы, добавление, удаление, обновление) с помощью команды меню Запросили кнопки Тип запроса в окне Конструктора запросов. Результат выполнения активного запроса следует искать на вкладке Таблицы, так как все активные запросы связаны с корректировкой или созданием таблиц. Рекомендуется первоначально отладить соответствующий активному запрос на выборку, а затем преобразовать его в активный в режиме Конструктора с помощью меню или панели инструментов. Приведенные ниже примеры демонстрируют методику создания активных запросов. Создание новой таблицы, содержащей все заказы: ¨ Источник данных: запрос Список всех заказов. ¨ Название запроса: Создание таблицы со всеми заказами. ¨ Примечание к бланку QBE (табл. 2.50). После выполнения команды Запрос/Создание таблицы появляется диалоговое окно, в котором необходимо указать имя создаваемой таблицы (например, Все заказы). Затем, как в запросе на выборку, в строке Полебланка QBE поместить те поля запроса, значения которых будут храниться в создаваемой таблице. Если в выходной таблице необходимы все поля, то достаточно разместить в строке Поле бланка QBE символ *, находящийся в списке полей запроса. Можно также добавить поле для сортировки (Номер заказа), но не отображать его, так как оно в противном случае повторится в выходном наборе. После выполнения запроса создается таблица Все заказы, содержащая набор данных, совпадающий с результатами выполнения запроса Список всех заказов, представленными в табл. 2.11, но отсортированный в другом порядке.
Дата добавления: 2014-11-16; Просмотров: 661; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |