access и сводные таблицы

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Алер
Сообщения: 1
Зарегистрирован: 02 авг 2004, 15:48

Уважаемые многоопытные программисты помогите начинающему!
Наверное для Вас это несложный вопрос:

Есть несколько таблиц связанных по ключевому полю(табельному номеру сотрудника) в сводную таблицу.
Причем все поля по ключу есть только в первой таблице(список сотрудников), в остальных их меньше(например по одному виду начисления были не у всех). При формирование сводной таблицы(с помощью конструктора) в нее попадают только те сотрудники у которых начисления есть во всех таблицах.
Как сделать чтобы сводная таблица была полной?

Заранее благодарен за ответ.
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Алер, для подобных выборок необходим OUTER JOIN
Что-то вроде этого:

Код: Выделить всё

SELECT t1.*, t2.*
FROM table1 AS t2 LEFT OUTER JOIN Table2 AS t1 ON t2.Field1 = t1.Field1;
Даже самый дурацкий замысел можно воплотить мастерски
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Вместо OUTER тут все-таки луше LEFT или RIGHT в зависимости от того с какой стороны от JOIN стоит таблица с сотрудниками. Однако если опыта в написании SQL-запросов нет, то можно обойтись средствами построителя запросов. Для этого в построителе запросов надо щелкнуть правой кнопкой мыши на связь между таблицами (на каждую связь таблицы с сотрудниками и какой-либо другой таблицей) в запросе, и в свойствах вязи выбрать нужный переключатель, например там будут варианты:

* показывать только связанные записи
о показывать все записи из "Сотрудники" и только связаные из "ХХХ"
о показывать все записи из "ХХХ" и только связаные из "Сотрудники"

по умолчанию выбран первый, что сответствует INNER JOIN

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