В свою очередь в таблицу “тПоверяемоеОборудование” подставляются данные проверяющих из таблицы “тКонтролер” такие как: “Код контролера”, “Фамилия”, “Имя”, “Отчество”, “Квалификация”, “Дата последней аттестации”, “Дата следующей аттестации” - через поле подстановки “Контролер”. Эти же поля таблицы “тКонтролер” подставляются в таблицу “тПоверка”. Также в таблицу “тПоверка” подставляются данные о лицензиях из таблицы “тЛицензия” через поле “Код лицензии лаборатории” и включает такие поля как: “Код лицензии лаборатории”, “Наименование лицензии”, “Наименование лицензиата”, “Дата выдачи лицензии”, “Дата окончания лицензии”.
Результаты поверки счетчика, наименование измерительного прибора и их параметров фиксируются в таблицах “тОперацииПоверки”, “тПоверяемоеОборудование”, “тПараметрыИзмерения”.
Схема БД отражает вид связей между таблицами: связь “тПоверяемоеОборудование” и “тПоверка” определена как “ один-ко-многим”, что означает, что в системе предусмотрена поверка множества поверяемых приборов; в свою очередь связь “ один-ко-многим” между таблицами поверки “тПоверка” и “тКонтролер” показывает, что предусмотрено использование в поверке множество контролеров, которые, как и поверяемые приборы связаны отношением “многие-к-одному” с таблицей характеристик приборов тПоверяемоеОборудование”, что определяет возможность описание множества данных для этих приборов.
Таблица “тВход” является обособленной таблицей в базе данных и взаимодействует только с формами “Вход”, “Регистрация” и “Главная кнопочная форма Администратор”. Что обеспечивает защиту этих данных от других пользователей, в виду отсутствия прямого доступа к данным.
В схеме БД отображена возможность использование в поверке множеством операций поверок, множеством поверяющего оборудования, которые имеют множества параметров (отношения “один-ко-многим” и “многие-к-одному”). Все поля связи на стороне “много” являются полями подстановки соответствующих ключевых полей на стороне один. Например, поле “Код Операции” таблицы “тПараметрыИзмерения” является полем подстановки “Код операции поверки” таблицы “тПоверка”.
3.5 Структурная схема запросов
Запрос“Запрос за текущий год” фильтрует информацию о электросчетчиках, которые надо поверить в текущем году. Структура запроса “Запрос за текущий год” представлена следующей схемой:
Рисунок 3.11- Схема запроса “Запрос за текущий год”
Представление запроса “Запрос за текущий год” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код операции поверки], тПоверка.[Код счетчиков], тПоверка.[Вид поверки], тПоверка.[Дата поверки], тПоверка.[Код поверяющего], тПоверка.[Показание контролирующего]
FROM тПоверка
WHERE (((тПоверка.[Дата поверки])>=#1/1/2017# And (тПоверка.[Дата поверки])<=#12/31/2017#));
Здесь перечислены наименования полей, включаемые в запрос, указывается таблица, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос WHERE показывает начало условия в SQL коде.
Запрос“Запрос за текущий месяц” фильтрует информацию о электросчетчиках, которые надо поверить в текущем месяце. Структура запроса “Запрос за текущий месяц” представлена следующей схемой:
Рисунок 3.12- Схема запроса “Запрос за текущий месяц”
Представление запроса “Запрос за текущий месяц” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код операции поверки], тПоверка.[Код счетчиков], тПоверка.[Вид поверки], тПоверка.[Дата поверки], тПоверка.[Код поверяющего], тПоверка.[Показание контролирующего]
FROM тПоверка
WHERE (((тПоверка.[Дата поверки])>=#6/1/2017# And (тПоверка.[Дата поверки])<=#6/30/2017#));
Здесь перечислены наименования полей, включаемые в запрос, указывается таблица, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос WHERE показывает начало условия в SQL коде.
Запрос“Запрос за Итоговую таблицу”выводит полную информацию о электросчетчиках. Структура запроса “Запрос за Итоговую таблицу” представлена следующими схемами:
Рисунок 3.13а- Схема запроса “Запрос за Итоговую таблицу”
Рисунок 3.13б- Схема запроса “Запрос за Итоговую таблицу”
Представление запроса “Запрос за Итоговую таблицу” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код поверки], тПоверка.[Код операции поверки], тПоверка.[Код лицензии лаборатории], тЛицензия.[Наименование лицензиата], тЛицензия.[Дата выдачи лицензии], тЛицензия.[Дата окончания лицензии], тПоверка.[Код счетчиков], тПоверка.[Вид поверки], тПоверка.Периодичность, тПоверка.[Дата поверки], тПоверка.[Дата предыдущей поверки], тПоверка.[Код поверяющего], тКонтролер.Имя, тКонтролер.Отчество, тКонтролер.Квалификация, тКонтролер.[Дата последней аттестации], тКонтролер.[Дата следующей аттестации], тПоверка.[Показание контролирующего]
FROM тКонтролер INNER JOIN (тЛицензия INNER JOIN тПоверка ON тЛицензия.[Код лицензии лаборатории] = тПоверка.[Код лицензии лаборатории]) ON тКонтролер.[Код контролера] = тПоверка.[Код поверяющего];
Здесь перечислены наименования полей, включаемые в запрос, указываются таблицы, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Вид связи INNERJOIN показывает, что в запросе объединяются только те записи таблиц “тПоверка”, “тЛицензия” и “тКонтролер”, в которых связанные поля обеих таблиц совпадают.
Запрос“Запрос на количество использования прибора” фильтрует информацию о электросчетчиках, которые хоть раз использовались, и выводит статистику их использований. Структура запроса “Запрос на количество использования прибора” представлена следующей схемой:
Рисунок 3.14- Схема запроса “Запрос на количество использования прибора”
Представление запроса “Запрос на количество использования прибора” в форме SQL имеет следующий вид:
SELECT тПоверяющееОборудование.[Наименование оборудования], тПоверяющееОборудование.Производитель, тОперацииПоверки.[Наименование параметра контроля], Count(тОперацииПоверки.[Наименование параметра контроля]) AS Количество
FROM тПоверяющееОборудование INNER JOIN тОперацииПоверки ON тПоверяющееОборудование.[Код поверяющего оборудование] = тОперацииПоверки.[Код контролирующего прибора]
GROUP BY тПоверяющееОборудование.[Наименование оборудования], тПоверяющееОборудование.Производитель, тОперацииПоверки.[Наименование параметра контроля];
Здесь перечислены наименования полей, включаемые в запрос, указываются таблицы, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос GROUPBYпоказывает, что в запросе группируются записи.
Запрос“Запрос не используемых приборов” фильтрует информацию о приборах поверки, которые ни разу не использовались. Структура запроса “Запрос не используемых приборов” представлена следующей схемой:
Рисунок 3.15- Схема запроса “Запрос не используемых приборов”
Представление запроса “Запрос не используемых приборов” в форме SQL имеет следующий вид:
SELECT тПоверяющееОборудование.[Наименование оборудования], тПоверяющееОборудование.Производитель, тПоверяющееОборудование.[Класс точности прибора]
FROM тПоверяющееОборудование LEFT JOIN тОперацииПоверки ON тПоверяющееОборудование.[Код поверяющего оборудование] = тОперацииПоверки.[Код контролирующего прибора]
WHERE (((тОперацииПоверки.[Код контролирующего прибора]) IsNull));
Здесь перечислены наименования полей, включаемые в запрос, указываются таблицы, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос WHERE показывает начало условия в SQL коде, а условие IsNullпоказывает то, что ищутся записи, которые не используются в двух таблицах одновременно.
Запрос “Запрос на таблицу Даты поверок” создает наглядную таблицу информации о датах поверки и данных контролеров, которая создается на базе подчинённого запроса. Структура запроса “Запрос на таблицу Даты поверок” представлена следующей схемой:
Рисунок 3.16- Схема запроса “Запрос на таблицу Даты поверок”
Представление запроса “Запрос на таблицу Даты поверок” в форме SQL имеет следующий вид:
TRANSFORM Last([Запрос* на Даты поверок].[Дата поверки]) AS [Last-Дата поверки]
SELECT [Запрос* на Даты поверок].[Код счетчиков]
FROM [Запрос* на Даты поверок]
GROUP BY [Запрос* на Даты поверок].[Код счетчиков]
PIVOT [Запрос* на Даты поверок].Фамилия;
Здесь создана таблица с помощью команды TRANSFORM. А наименования его полей, формируются на основе полей подчиненного запроса “Запрос* на Даты поверок”. И на основе этого создается наглядная таблица.
Структура запроса “Запрос* на Даты поверок” представлена следующей схемой:
Рисунок 3.17- Схема запроса “Запрос* на Даты поверок”
Представление запроса “Запрос* на Даты поверок” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код счетчиков], тПоверка.[Дата поверки], тКонтролер.Фамилия
FROM тКонтролер INNER JOIN тПоверка ON тКонтролер.[Код контролера] = тПоверка.[Код поверяющего];
Здесь перечисленные наименование полей включаемые в запрос, указываются таблицы, из которых они извлекаются, а также описываются взаимосвязи таблиц, участвующие в формирование запроса. Вид связи INNERJOIN показывает, что в запросе объединяются только те записи таблиц “тПоверка” и “тКонтролер”, в которых связанные поля обеих таблиц совпадают.
Запрос“Многотабличный Запрос” фильтрует информацию о электросчетчиках и кто поверял их. Структура запроса “Многотабличный Запрос” представлена следующей схемой:
Рисунок 3.18- Схема запроса “Многотабличный Запрос”
Представление запроса “Многотабличный Запрос” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код счетчиков], тПоверка.[Код операции поверки], тПоверка.[Показание контролирующего], тОперацииПоверки.[Допустимое Мин_значение], тОперацииПоверки.[Допустимое Макс_значение]
FROM тОперацииПоверки INNER JOIN тПоверка ON тОперацииПоверки.[Код Операции] = тПоверка.[Код операции поверки];
Здесь перечислены наименования полей, включаемые в запрос, указываются таблицы, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Вид связи INNER JOIN показывает, что в запросе объединяются только те записи таблиц “тПоверка” и “тОперацииПоверки”, в которых связанные поля обеих таблиц совпадают.
Запрос“Неповерятые счетчики” фильтрует информацию о электросчетчиках, которые еще предстоит проверить. Структура запроса “Не поверятые счетчики” представлена следующей схемой:
Рисунок 3.19 - Схема запроса “Не поверятые счетчики”
Представление запроса “Не поверятые счетчики” в форме SQL имеет следующий вид:
SELECT тПоверяемоеОборудование.[Наименование счетчика], тПоверяемоеОборудование.[Класс счетчика], тПоверяемоеОборудование.Производитель, тПоверяемоеОборудование.[Дата изготовления]
FROM тПоверяемоеОборудование LEFT JOIN тПоверка ON тПоверяемоеОборудование.[Код заводской счетчика] = тПоверка.[Код счетчиков]
WHERE (((тПоверка.[Код счетчиков]) IsNull));
Здесь перечислены наименования полей, включаемые в запрос, указываются таблицы, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос WHERE показывает начало условия в SQL коде, а условие IsNull показывает то, что ищутся записи, которые не используются в двух таблицах одновременно.
Запрос“СЗапрос на вид поверки” фильтрует информацию о видах поверкиэлектросчетчиков, которымимы конкретно в данный момент интересуемся. Структура запроса “СЗапрос на вид поверки” представлена следующей схемой:
Рисунок 3.20- Схема запроса “СЗапрос на вид поверки”
Представление запроса “СЗапрос на вид поверки” в форме SQL имеет следующий вид:
SELECT тПоверка.[Код операции поверки], тПоверка.[Код счетчиков], тПоверка.[Вид поверки], тПоверка.[Дата поверки], тПоверка.[Код поверяющего], тПоверка.[Показание контролирующего]
FROM тПоверка
WHERE (((тПоверка.[Вид поверки])=[Введите вид поверки]));
Здесь перечислены наименования полей, включаемые в запрос, указывается таблица, из которой они извлекаются, а также описываются условия выборки, участвующий в формировании запроса. Запрос WHERE показывает начало условия в SQL коде, в котором создается окно запроса для ввода ответа.
Запрос “Обновление дат” обновляет информацию о поверках электросчетчиков. Структура запроса “Обновление дат” представлена следующей схемой:
Рисунок 3.21- Схема запроса “Обновление дат”
Представление запроса “Обновление дат” в форме SQL имеет следующий вид:
UPDATE тПоверка SET тПоверка.[Дата поверки] = [Введите дату которую надо установить]
WHERE (((тПоверка.[Дата предыдущей поверки])=[Какую надо дату обновить]));
Запрос UPDATE показывает начало условия по поиску записей, в которой надо обновить поле в SQL коде.
Запрос “Удаление счетчиков” удаляет записи о электросчетчиках. Структура запроса “Удаление счетчиков” представлена следующей схемой: