Этап 2. Создание запросов к базе данных.




Перейдите на вкладку Запросы (Queries) в Access 2003 или вкладку Создание в Access 2007 и выберете создание запроса с помощью конструктора (Create queries with Design view) и создайте следующие запросы:

7. Запрос для вывода всех абонентов и установленных у них тарифных планов*.

8. Запрос для вывода всех абонентов не совершавших междугородних звонков*.

9. Запрос определения количества абонентов на каждом тарифном плане*.

10. Запрос на вывод городов стоимость минуты у которых находится в интервале:

1. от 3 до 8 рублей*.

2. Интервал задается параметрами вводимыми пользователем*.

Примечание: Необходимо использовать запрос с двумя параметрами

11. Простой запрос для вывода клиентов не совершивших ни одного звонка;

1. за все время работы компании*.

2. за последний месяц.

Примечание: создание этого запроса происходит в два этапа. На первом этапе необходимо создать запрос выводящий клиентов совершавших звонки в этом месяце. На втором создать запрос на основе таблицы Клиенты, а в качестве условия отбора использовать результат предыдущего запроса. Для этого необходимо использовать ключевое слово in, который проверяет равно ли значение выражения какому-либо значению из указанного списка, в качестве списка может быть фиксированный набор значений или результат другого запроса (например: in (select Имя from Запрос1)).При желании этот запрос можно сделать в один этап но необходимо знание SQL.

12. Запрос с параметром для вывода клиентов выбранного пользователем тарифного плана.

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

Примечание: В реализации этого запроса используются функции определения года и месяца (year и month). Для определения стоимости разговора создайте вычисляемое поле, в котором стоимость минуты с конкретным городом надо умножить на продолжительность разговора в минутах. Продолжительность разговора в минутах можно определить, применив функции Часы и Минуты к разности между окончанием и началом разговора либо умножив эту разность на 1440. В этом случае обязательно округлите результат до ближайшего целого.

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

Примечание: Этот запрос должен включать как минимум следующие поля: код абонента, тариф, год и месяц разговора, продолжительность разговора.

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

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

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

Примечание: в качестве источника запроса необходимо использовать запрос подсчета стоимости внутригородских звонков (запрос №2) и таблицы Абоненты и Тарифы для определения минут, входящих в тариф. Для учета безлимитного тарифа лучше всего использовать функции Если (iif) примерно в таком виде: перерасход: IIf(IsNull([тарифы]![Лимит времени]);0;IIf([время2]>[тарифы]![Лимит времени];[время2]-[тарифы]![Лимит времени];0))

17. Запрос для определения итоговых расходов каждого абонента за месяц. Для создания этого запроса необходимо сделать ряд подготовительных этапов:

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

2. Удалите текст созданного запроса и снова перейдите в режим конструктора. Выберете в качестве источника запрос на определение ежемесячного превышения лимита и также добавьте все поля для вывода. Перейдите в режим редактирования SQL и снова скопируйте полученный текст.

В настройках запроса выберете тип запроса – объединение (union) и затем в режиме редактирования SQL скопируйте обратно сначала первый запрос, потом добавьте ключевое слово union all и в конце второй запрос. Сохраните получившийся запрос.

Внимание: обратите внимание, что Access в конце запросов ставит точку с запятой. Ее надо удалить в конце первого запроса перед словом union.

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

18. Запрос с параметром для определения суммарной продолжительности разговоров по каждому тарифному плану в течение месяца. Параметр запроса – интересующий вас месяц.

19. Итоговый запрос: количество и общая продолжительность разговоров с каждым городом.

20. Перекрестный запрос: суммарная продолжительность городских и междугородних разговоров каждого абонента. Примерный вид запроса:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: