Мы с Вами разбирались как создавать сложные взаимосвязанные таблицы. В результате построения таких таблиц возникает проблема доступа к этим таблицам. Чтобы объединить много таблиц и получить доступ к этим данным Вам приходится писать SQL операторы с использованием JOIN. Длина такого оператора может быть значительна. Так что скажете Вы обращаясь к таблице из Excel или предоставляя к ним доступ из IIS писать все эти операторы ???? Конечно нет, для таких целей удобно использовать запросы. Итак, у нас есть две таблицы классификаторы и одна сводная. Давайте сделаем пример. Делаем его без всяких подстановок. У нас будет три таблицы:
В таблице BASE:
ID_BASE счетчик NAME текст
В таблице COMP:
ID_COMP счетчик NAME текст
И в таблице ALL:
ID_ALL счетчик BASE число COMP число
Так вот сводную таблицу делаем без постановки. То есть ручками заполняем числа. Вот как она выглядит в режиме таблицы.
Вот в таком виде она у Вас и будет при вызове базы из Excel или IIS или чего-нибудь другого. Это не совсем удобно. Для того, чтобы связать эти таблицы в тех программах, которые будут иметь доступ к таблицам, надо писать такой SQL оператор.
SELECT BASE.NAME, COMP.NAME FROM COMP INNER JOIN (BASE INNER JOIN [ALL] ON BASE.ID_BASE = [ALL].BASE) ON COMP.ID_COMP = [ALL].COMP;
Очень удобно и коротко я Вам скажу :-) Выход есть в создании запросов, но в Access. Там очень удобно графически создавать сам запрос и запрос имеет очень хорошие черты.
Во-первых запрос Не занимает место на диске. То есть в момент обращения к нему создается таблица, но в памяти компьютера. Вот и поэтому Вы для удобства можете создать огромное кодличество запросов на многие случаи жизни.
Запрос вопринимается программным обеспечением как обычная таблица. То есть методы работы теже с запросом, что и таблицей. Посмотрите разделы на сервере посвященные IIS MFC, DAO Excel и Вы увидите, что методы работы с запросом не сильно отличаются от таблицы.
Давайте в следующем шаге создадим запрос на основе этих таблиц.