Запрос в access в sql: Русско-таджикский словарь
Содержание
Как установить связь с базой данных MS ACCESS и работать с внешними таблицами
- Главная
- Вопросы и ответы
Обсудить в форуме Комментариев 0
Этот раздел посвящен совместному использованию взаимодействию ГИС ArcView
3.2a и СУБД MS ACCESS 2000. Приведенные примеры взяты из разрабатываемого
сейчас инициативного проекта «Флора Таймыра» (Поспелова Е.Б.,
Поспелов И.Н. — Таймырский заповедник, Матвеева Н.В., Заноха Л.Л.- БИН
РАН)
А. Установка связи с нужной таблицей.
Предположим, что у вас имеется база данных, в которой имеется информация,
относящаяся к объектам, изображенным на карте. Вы хотите построить одну
или несколько тематических карт, отображающих эту информацию, не вводя
соответствующие данные в атрибутивную таблицу темы. Обязательное условие
– таблица в базе данных и атрибутивная таблица темы должны иметь поле,
содержащее одни и те же данные. В приводимом ниже примере это данные по
более чем 80 точкам Таймырского АО, где проводились ботанические исследования
и имеются списки сосудистых растений. Атрибутивная таблица темы содержит
условные символьные коды участков. В таблице базы данных для каждого участка
приводятся различные примеры, такие, как число видов растений, степень
изученности участка и т.д.
По опыту, лучше заранее непосредственно в ACCESS создать запрос, содержащий
все поля, значения которых нужно отобразить на карте, так как процесс
создания запроса в ACCESS весьма прост, а для SQL-связи запрос и таблица
равнозначны. В моем случае создан запрос LFMap, содержащий поля кода участка,
принадлежности его к определенной растительно-ландшафтной зоне, числа
видов сосудистых растений и класса изученности флоры участка. Так как
тематика данного ресурса не включает вопросы по работе с ACCESS, то по
вопросам создания запросов обращайтесь к соответствующей документации
Для создания связи с базой данных необходимо, чтобы активным было окно
Проекта ArcView и выбрать в меню Project – SQL connect…
Появится окно, где вверху в поле Connection необходимо выбрать База данных MS ACCESS, нажать кнопку Connect, после чего будет предложено
выбрать конкретную базу данных.
*Примечание – для удобства работы лучше,
чтобы база данных была в том же каталоге, что и проект, можно также создать
связанную с основной отдельную базу данных в этом каталоге, так как при
последующих открытиях проекта будет предлагаться выбрать связанную с проектом
базу данных, по умолчанию будет предложен каталог, где находится проект.
После установления связи в левом окошке “Tables” диалога SQL
Connect появятся все таблицы и запросы базы данных.
Ваши действия (алгоритм 1):
1. Дважды щелкнуть по нужному объекту базы данных. После
этого все поля таблицы или запроса появятся в окошке “Columns”,
а имя самой таблицы – в предложении “from”.
2. Дважды щелкнуть по каждому из полей, которые нужно включить в SQL-запрос
в окошке “Columns”, они появятся в предложении “Select”;
можно также щелкнуть на строчке <All Collumns>, тогда в связанной
таблице будут выведены все поля исходной таблицы. 3
Ввести вразумительное имя в поле Output table.
4. Об использовании предложения Where – см. ниже.
5. Нажать Query. Связанная таблица появится отдельным
окном.
*Примечание: Если у вас в данный момент
запущен ACCESS, и связываемый запрос или таблица открыт в ACCESS в режиме
конструктора, то вы получите сообщение об ошибке.
6. Закрыть диалог SQL-connect (или провести ту же операцию с другой
таблицей).
7. Путем использования меню Window и перетаскивания
окон сделать так, чтобы на мониторе были одновременно видны атрибутивная
таблица темы, к которой надо привязать данные из связанной таблицы, и
сама связанная таблица. Делать атрибутивную таблицу редактируемой необязательно,
связанная таблица редактируемой по определению быть не может. Если атрибутивная
таблица темы не обнаруживается, значит, после загрузки в проект темы к
ней не разу не обращались. Тогда в окне View нужно сделать нужную тему
активной и нажать кнопку Open theme table (где нарисована таблица).
Появится таблица с именем “Attributes of <название темы>” – это и есть атрибутивная таблица. Поочередно выделить общие поля обеих
таблиц – в приводимом примере – поле “Key” атрибутивной таблицы и поле “Ключевые участки: код” связанной.
8. Сделать активным окно атрибутивной таблицы и нажать кнопку Join (если кнопка неактивна, значит вы не выделили в какой-то из таблиц поля
связи, или окна связываемых таблиц – атрибутивной и внешней не являются
первым и вторым соответственно в иерархии окон). После этого в атрибутивной
таблице появятся все поля связанной.
ВНИМАНИЕ! Если
активным будет окно связанной таблицы, то результат получится обратный
ожидаемому – поля атрибутивной таблицы появятся в внешней связанной, что,
как я полагаю, вам не надо.
9. Перейти в окно вида и при помощи двойного щелчка по теме строить легенду
по желаемому полю. (я построил легенду типа Graduated Symbol по
полю Count — Ключевые участки код – число видов сосудистых растений).
Б. Более сложный случай – несколько одновременно загруженных
в Вид тем, основанных на одной связанной таблице.
Как видно из предыдущего примера, в полученной в результате связывания
таблице имеется 3 поля, по каждому из которых можно построить отдельную
тематическую карту. Можно конечно, менять легенду в одной теме с «привязанными»
атрибутивными данными, но, как мне представляется, удобнее иметь все эти
темы в виде одновременно и просто управлять их отображением. Как это сделать?
Предлагаю следующий алгоритм (алгоритм 2).
- Добавить исходную тему в вид еще раз.
- Вызвать свойства темы (Theme-Properites) и переименовать ее
в поле Theme Name, заменив «что-то.shp» на имя, отражающее
суть темы. В окне Вида тема приобретет другое имя. - Нажатием на кнопку Open theme table, тем самым активизировать
атрибутивную таблицу темы (обратите внимание – таблица не изменилась,
изменилось только имя таблицы, а атрибутивные данные остались теми же,
что и у загруженной темы). - Активизировать связанную таблицу и выполнить шаги 7-9 из выше описанных .
- При необходимости – повторить операцию с той же темой еще под одним
именем.
В. Еще более сложный случай – связь с таблицей, где одной записи атрибутивной
таблицы темы соответствуют много записей связанной таблицы – использование
предложения Where SQL.
В данном разделе речь идет о связывании атрибутивной таблицы темы с таблицей
базы данных, содержащей множественные данные, относящиеся к определенному
географическому объекту. В приводимом примере имеется выше описанная тема,
показывающая расположение участков с обследованными флорами сосудистых
растений, атрибутивная таблица которой содержит только условные коды ключевых
участков; и таблица в базе данных ACCESS, имеющая поля код вида растений
– код ключевого участка – балльная характеристика распространения вида
на данном участке. Необходимо для определенного вида построить точечную
карту распространения. Для этого нужно выполнить следующие действия.
- Выполнить шаги 1-3 из приведенного в начале алгоритма
1 создания SQL-связи. - Поместить курсор в поле Where, дважды щелкнуть в окошке Columns по тому полю, по которому нужно провести выборку (в нашем случае поле SpeciesIndex, представляющее из себя числовой код вида растений).
В окошке Where появится `Q1`.`SpeciesIndex`, далее
ввести = нужный индекс
Пример выражения:
`Q1`. `SpeciesIndex`=420
В русифицированном ArcView синтаксис выражения
почему-то меняется, и его нужно ввести вручную. Оно должно выглядеть так:
([Q1.SpeciesIndex])=(420)
Примечание. К сожалению, отбор можно
проводить только по числовым полям внешней таблицы. Причины этого мне
не вполне ясны, в справочной системе имеется намек, что драйвер ODBS,
поставляемый с MS ACCESS, не полностью поддерживает связь с приложениями
«made by не-Microsoft», хотя в руководстве пользователя ArcView приводится пример отбора именно по символьному полю (правда, для MS
ACCESS 97). Если есть необходимость проводить отбор по символьному
полю, то можно создать запрос с нужной выборкой непосредственно в ACCESS
и связывать данные с ним.
- Выполнить шаги 5-6 из описанного выше алгоритма
1. - Добавить проект связываемую тему, переименовать ее, активизировать
атрибутивную таблицу, соединить ее со связанной внешней (алгоритм
2). - Создать легенду темы, исключающую вывод значений, имеющих пустые
поля для внешней таблицы.
В приведенном примере легенда построена по полю «Активность», отражающему
распространение вида в данной точке, и несколько ее модифицировал. Серыми
точками показана исходная тема, показывающая расположение всех участков
с обследованными флорами сосудистых растений.
Обсудить в форуме Комментариев 0
Последнее обновление: September 09 2021
Дата создания: 01.02.2004
Автор(ы): Игорь Поспелов (taimyr)
Наверх
Как запустить SQL-запрос в Access? Шаг за шагом
Приложения
0 1.060 3 минут на чтение
Запрос SQL в Access может быть довольно простым, процесс может быть выполнен за считанные минуты и с помощью простых шагов. Помните, что это Существует три метода запроса: объединение, передача и определение данных. , как хотите, вы можете сделать это с помощью того же учебника.
И если хочешь создавать запросы и формы или создать раскрывающееся меню в Microsoft Access , вам нужно поискать другой учебник (рекомендуется сделать это, чтобы вы могли хорошо справиться с этой программой и не путаться между кнопками и запросами).
Что делать, чтобы выполнить SQL-запрос в Access?
Необходимо, чтобы вы предварительно установили Microsoft Access на свой компьютер, иначе вам придется делать это через Магазин Microsoft . Чтобы начать процесс консультации, нажмите кнопку «Пуск» и введите » доступ «. Программа появится, и вам нужно дважды щелкнуть, чтобы запустить ее.
После запуска Microsoft Access откройте базу данных, в которой вы хотите выполнить SQL-запрос, у вас должна быть возможность редактировать ее. Откройте базу данных, нажмите «Все объекты доступа» , показывающий список объектов, доступных в базе данных.
Затем вам нужно выбрать » запросы »Чтобы увидеть список запросы существующий. Теперь вам нужно будет выбрать запрос, который вы хотите выполнить. Вы можете отображать данные в виде » вид дизайна « или «Просмотр SQL» так что вы можете увидеть код или окончательный вид программирования.
Любые изменения, которые вам нужно внести, можно сделать в одном из двух доступных представлений, но не забудьте сохранить их перед редактированием представлений. Теперь, чтобы выполнить ваши запросы, вы должны выбрать на панели тот, который вы хотите сделать, и в каком виде вы хотите это сделать, нажмите » выполнять «, Представленный» ! » Красный.
Как только запрос будет завершен, будет создан отчет, который, как вы должны знать, будет файлом только для чтения, любые исправления необходимо вносить вручную.
Зачем нужна консультация?
SQL-запросы необходимы для проверки баз данных, особенно для подтверждения их актуальности или отсутствия ошибок. Таким образом можно избежать ручного поиска, который может занять много времени. SQL — это система, предлагающая широкий спектр функций.
Управляя алгеброй, этим считающимся языком программирования, вы можете за несколько секунд дать результаты по запросам, которые вы программируете и выполняете несколькими щелчками мыши. Кроме того, основные запросы, выполняемые через Microsoft Access, могут позволить вам изменять, удалять или добавлять данные в базу данных, не усложняя задачу. Все в этой системе может работать отлично, кроме того, позволяет указать каждую деталь, чтобы сделать поиск намного быстрее и эффективнее.
Как можно определить SQL-запрос в Access?
Запрос на доступ можно рассматривать как своего рода поиск мусора. C а указанная деталь будет дорожкой и сокровище приблизится.
При использовании с SQL можно найти данные любого типа: уравнения, имена, номера телефонов, электронные письма и все, что есть в базе данных. Это программное обеспечение Microsoft может быть отличным союзником для поиска, редактирования или восстановления баз данных, созданных с помощью любой системы программирования.
Выделив наиболее важные данные и объяснив важность выполнения SQL-запроса в Access, можно сказать, что все сказано. В качестве последней рекомендации имейте в виду, что подавляющее большинство данных, сгенерированных запросом Access, будет в таблице, которая не будет исполняемой.
Это приводит к необходимости вносить изменения вручную и с помощью другой команды запроса редактирования. Помните, что это с новыми технологиями для членов семьи никогда не поздно что позволит им облегчить свою работу и достичь новой эффективности. Поэтому вам нужно научиться делать более конкретные и эффективные запросы (например, запрос между датами и диапазонами ).
Подобные предметы
Поиск записей в одной таблице, но не в другой, с помощью запросов внешнего объединения
Предоставлено Молли Пелл, старшим системным аналитиком
При запросе данных из нескольких таблиц в Microsoft Access или SQL Server мы обычно используем внутренние соединения для связывания
записи со значениями, существующими в обеих таблицах. Но что, если нам нужно найти записи, которые существуют в одной таблице, но не существуют в другой?
Оказывается, это можно сделать без какого-либо программирования, так как это часть синтаксиса запроса SQL.
Просто используйте внешнее соединение для создания результатов «Не в». Используйте ЛЕВЫЙ
JOIN или синтаксис RIGHT JOIN в зависимости от того, какая таблица упоминается в запросе первой:
- LEFT JOIN возвращает все записи из первой таблицы, даже если во второй таблице нет соответствующих записей.
- RIGHT JOIN возвращает все записи из второй таблицы, даже если в первой таблице нет соответствующих записей.
Эти объединения также можно использовать для извлечения только тех значений записей, которые существуют в одной таблице, но не для другой.
Существует несколько сценариев, в которых следует использовать внешние соединения:
- Отображение всех записей из одной таблицы с полями из второй таблицы, если существуют связанные записи
- Поиск записей в одной таблице, которые не существуют в другой таблице (запрос Not-In)
- Поиск записей, существующих в одной таблице, но не в запросе (подмножество другой таблицы)
- Устранение неполадок с отсутствующими данными (бесхозные строки)
- Поиск различий между двумя таблицами
В следующих примерах для демонстрации этих сценариев используются таблицы Customers и Orders из примера базы данных Northwind 2007. accdb.
Предположим, нам нужен список всех клиентов, и если у них есть Заказы, мы хотим
чтобы показать даты заказа. В этом сценарии мы хотим видеть клиентов с заказами И клиентов без заказов.
заказы. Для этого мы можем использовать левое внешнее соединение.
Разработка запроса
Выполните следующие действия, чтобы разработать запрос в интерактивном режиме (или вместо этого вставьте запрос SQL):
- В окне Designer добавьте таблицы Customers и Orders. Линия соединения
автоматически добавляется для присоединения [Customers].[ID] к [Orders].[Customer ID]. - Дважды щелкните строку, чтобы открыть свойства соединения
Обратите внимание, что это показывает имя левой таблицы и правой таблицы и позволяет вам выбрать
ваш вариант присоединения. В этом случае нам нужен вариант № 2: включить ВСЕ записи от клиентов и
только те записи из заказов, в которых соединяемые поля равны. - Нажмите OK, чтобы вернуться в окно конструктора, и добавьте поля [Клиенты].
[Компания] и [Заказы].[Дата заказа]
Окно конструктора должно выглядеть следующим образом:
Запрос SQL
Оператор SQL для запроса выглядит следующим образом:
ВЫБЕРИТЕ Клиенты.Компания, Заказы.[Дата заказа]
ОТ клиентов LEFT JOIN Orders ON Customers.ID = Orders.[ID клиента]
Результаты запроса
Запустите запрос, и вы увидите все компании и их заказы, если таковые имеются. Если у компании нет
связанный заказ, он по-прежнему отображается в списке, только с нулевой датой заказа.
Если бы мы использовали внутреннее соединение, то компания B была бы исключена из результатов, поскольку в таблице Orders нет соответствующей записи.
Теперь предположим, что мы ТОЛЬКО хотим найти клиентов, которые не разместили
любые заказы. Так же, как и в первом случае, мы будем
для этого используйте левое внешнее соединение. На этот раз, однако, хорошо добавить
критерии для исключения строк с заказами.
Разработка запроса
В окне конструктора добавьте таблицы «Клиенты» и «Заказы» и установите
тип соединения должен быть левым внешним соединением (как описано в шагах 1 и 2).
выше).
В окне конструктора добавьте следующие поля:
[Клиенты].[Компания] | Правда | равно нулю |
[Заказы].[Идентификатор заказа] | Ложь |
Окно дизайнера должно выглядеть так:
Запрос SQL
Оператор SQL для запроса выглядит следующим образом:
ВЫБЕРИТЕ Customers.CompanyFROM Customers LEFT JOIN Orders ON Customers.ID = Orders.[ID клиента] ГДЕ (((Заказы.[ID заказа]) равно нулю))
Результаты запроса
Запустите запрос, и вы увидите только те компании, у которых нет связанных заказов:
Теперь предположим, что мы хотим найти клиентов, которые не размещали заказы в прошлом году. Шаги аналогичны
поиск записей, которые существуют в одной таблице, но не существуют в другой, за исключением того, что вместо объединения
Таблица Customers к таблице Orders, мы присоединяем ее к сохраненному запросу, который возвращает Orders за последний год.
Сначала сохраните следующий запрос как «qryOrdersLastYear»:
SELECT * FROM Orders WHERE ((([Дата заказа])>=DateAdd('yyyy',-1,Date())))
И выполните описанные выше шаги, только используя qryOrdersLastYear вместо Orders. Оператор SQL для запроса выглядит следующим образом:
ВЫБЕРИТЕ Клиенты.Компания ОТ клиентов LEFT JOIN qryOrdersLastYear ON Customers.ID = qryOrdersLastYear.[идентификатор клиента] ГДЕ (((qryOrdersLastYear.[Идентификатор заказа]) равно нулю))
Внешние соединения также пригодятся, когда мы хотим устранить неполадки с отсутствующими данными. Например, если мы найдем
себя с осиротевшими строками заказов, мы можем найти, какие заказы не имеют связанного клиента.
Разработка запроса
Выполните следующие шаги, чтобы разработать запрос в интерактивном режиме (или, в качестве альтернативы, вы можете вставить SQL запроса ниже)
- В окне конструктора добавьте таблицы «Клиенты» и «Заказы». Линия соединения
автоматически добавляется для присоединения [Customers].[ID] к [Orders].[Customer ID]. - Дважды щелкните эту строку, чтобы открыть свойства соединения:
Обратите внимание, что здесь показаны названия левой и правой таблиц, а также
Вариант присоединения. В этом случае нам нужен вариант № 3: «Включить ВСЕ записи из заказов и только те, которые
записей из «Клиентов», где объединенные поля равны». Это правое внешнее соединение, так как заказы
таблица — это наша правая таблица.
Нажмите OK, чтобы вернуться в окно Designer, и добавьте следующие поля:
[Заказы].[ID заказа] | Правда | |
[Заказы].![]() | Правда | |
[Клиенты].[ID] | Ложь | Иснулл |
Окно дизайнера должно выглядеть так:
Запрос SQL для отсутствующих или потерянных записей
Оператор SQL для запроса выглядит следующим образом:
ВЫБЕРИТЕ заказы.[ID заказа] ОТ клиентов RIGHT JOIN Orders ON Customers.ID = Orders.[ID клиента] ГДЕ (((Customers.ID) равен нулю))
Результаты запроса
Запустите запрос, и вы увидите все потерянные записи заказов (заказы, в которых есть несуществующий клиент).
Например, если клиент 1 отсутствует в таблице «Клиенты», результаты будут следующими:
(Обратите внимание, что ссылочная целостность была удалена из отношения для целей этого примера.
Обеспечьте ссылочную целостность, чтобы предотвратить потерянные записи. См. http://support.microsoft.com/kb/304466.
для получения подробной информации.)
Мы также можем использовать внешние соединения для поиска отсутствующих строк между таблицами. Предположим, что у нас есть два
копии таблицы Customers, но записи добавлялись и удалялись из обеих таблиц. Нам нужно увидеть
увидеть записи из обеих таблиц, которых нет в другой.
Чтобы увидеть строки в Customers, которых нет в Customers1, конструктор запросов выглядит так:
и SQL:
ВЫБЕРИТЕ Customers.ID, Customers.Company ОТ клиентов LEFT JOIN Customers1 ON Customers.ID = Customers1.ID ГДЕ (((Customers1.ID) равен нулю))
Чтобы увидеть обратное (строки в Customer1, которых нет в Customers), дизайнер выглядит так:
и SQL
ВЫБЕРИТЕ Customers1.ID, Customers1.Company ОТ клиентов ПРАВО ПРИСОЕДИНЯЙТЕСЬ к Customers1 ON Customers.ID = Customers1.ID ГДЕ (((Customers.ID) равен нулю))
Дополнительные ресурсы
- Total Access Detective находит различия между базами данных и объектами Microsoft Access, включая данные между таблицами
- Статья базы знаний Microsoft: Определение отношений между таблицами в базе данных Microsoft Access
Вернуться на страницу справочного центра запросов
Электронная почта Total Access 2022
Электронная почта всем в вашем списке доступа!
Всего визуальный агент 2021
Автоматизируйте работу с базой данных Access!
Обновлено
Microsoft Access to SQL Server Upsizing Center с техническими документами, ресурсами и
Экспресс-загрузки SQL Server
Использование объединенных запросов и операторов выбора в SQL и Access
Обычно при объединении двух наборов данных в реляционной базе данных цель состоит в том, чтобы данные в двух источниках каким-то образом сопоставлялись.
Например: «Клиенты» — «Счета», «Поставщики» — «Запчасти», «Сотрудники» — «Отсутствие».
Иногда, но чаще, чем вы думаете, может потребоваться «объединение», а не «объединение» наборов данных.
Чтобы узнать больше о соединениях, прочитайте эту статью о соединениях SQL. Чтобы стать экспертом в SQL, посетите один из наших курсов SQL.
Например, чтобы объединить клиентов и поставщиков в один список рассылки, чтобы объявить о значительных изменениях или переезде в бизнесе.
Что такое запрос на объединение?
Union Query позволяет извлекать данные из любого количества таблиц. Думайте об этом как об операторе Select, который выбирает данные из любого количества источников в один большой список.
При стандартном связывании наборов данных два набора данных должны иметь часть информации, общее поле. В случае «От клиентов к счетам» это будет номер счета клиента, а затем этот общий факт/поле используется для «спаривания» или «связывания/объединения» записей из двух таблиц (9). 0256 Рис.1 ниже ).
В операторе Union Query/Select нет необходимости в этих связанных данных/поле.
| В этом отношении количество результирующих строк/записей не будет превышать общее количество записей в исходной таблице Invoices. |
Оператор Union Query/Select по существу размещает содержимое двух наборов данных «поверх» друг друга, перечисляя, например, имена и адреса электронной почты как набора данных «Клиент», так и набора данных «Поставщик». один длинный список.
Чтобы узнать больше о Access, прочитайте нашу статью об использовании запросов IF в качестве критериев поиска.
В этом отношении количество результирующих строк/записей обычно равно общему количеству записей из обеих таблиц, сложенных вместе.
В этом соотношении количество результирующих строк/записей обычно равно общему количеству записей из обеих таблиц, сложенных вместе. |
|
Каковы их требования и ограничения?
Для создания объединенных запросов/операторов выбора два объединяемых источника данных должны иметь структурное сходство: одинаковое количество выбранных полей в том же порядке и с аналогичными типами данных.
В приведенном здесь сценарии обе таблицы «Клиент» и «Поставщик» будут иметь общие поля «Имя», «Адрес» и «Контакт», и именно эти поля мы хотим объединить для запуска слияния.
Два набора данных должны быть объединены с использованием одинакового количества полей в том же порядке, но не обязательно с одинаковыми именами и с одинаковыми типами данных. Если, например, в таблице «Клиенты» адресных строк больше, чем «Поставщиков», то для таблицы «Поставщики» необходимо создать фиктивную адресную строку.
В качестве альтернативы, если в одной таблице есть одно поле «Контакт», а в другой — «Имя» и «Фамилия», то поля необходимо будет объединить/объединить для создания единого эквивалента «Контакт».
Важная особенность операторов Union Queries/Select заключается в том, что повторяющиеся записи автоматически исключаются из окончательного списка записей.
Например, если Заказчик также является Поставщиком, он появится только один раз в окончательном заявлении Union Query/Select. Если по какой-либо причине требуются дубликаты, то вместо чистого UNION можно использовать оператор UNION ALL.
Как создать запрос на объединение в Access
Создать запрос на объединение в Access — довольно простая задача, поскольку ее можно выполнить, создав два сопоставимых стандартных запроса на выборку, а затем объединив SQL из двух запросов. в один.
Подготовьте запрос клиента, включив в него необходимые поля для слияния и любую требуемую сортировку или фильтрацию.
Обратите внимание, что сортировка может применяться только к полям, содержащимся в первом запросе, но поскольку поля во втором запросе должны быть в том же порядке, конечным результатом этого объединения будут все компании в алфавитном порядке.
Оставив этот запрос открытым, создайте второй запрос для поставщиков.
Обратите внимание, что в приведенном ниже примере, поскольку tblCustomer имеет только одно поле Contact, а tblSuppliers — два, формула использовалась для объединения полей First Name и Last Name, чтобы они соответствовали одному полю Contact в tblCustomers. Это связано с тем, что два источника должны содержать одинаковое количество полей.
Также обратите внимание, что имена полей не обязательно должны совпадать, так как в первом запросе для клиентов две строки адреса — Address1 и Address2. Соответствующие строки в Поставщиках: Add1 и Add2.
Переключите этот второй запрос в представление SQL с помощью кнопок просмотра в правом нижнем углу экрана
900 05
, чтобы отобразить следующее, что необходимо выделить полностью и скопировано.
Вернитесь к Query1 для клиентов и снова переключитесь в представление SQL. Щелкните в конце отображаемого SQL и нажмите Enter, чтобы создать новую строку.
Подробнее о временных таблицах читайте здесь.
В начале новой строки введите слово UNION с последующим пробелом и вставьте содержимое Query2 the Suppliers, чтобы получить следующее: tomers. Контакты, табл.Клиенты .Address1, tblCustomers.Address2, tblCustomers.Town, tblCustomers.County, tblCustomers.PostCode, tblCustomers.EMail
ОТ tblCustomers
ЗАКАЗ ПО tblCustomers.Company;
ОБЪЕДИНЕНИЕ ВЫБЕРИТЕ tblSuppliers.Company, [Имя] & ” ” & [Фамилия] AS Contact, tblSuppliers.Add1, tblSuppliers.Add2, tblSuppliers.Town, tblSuppliers.County, tblSuppliers.PostCode, tblSup плоскогубцы.Электронная почта
ОТ таблицаПоставщики;
Просмотрите полный запрос в представлении таблицы, и будут отображаться 5 записей, поскольку в приведенном примере один клиент также является поставщиком, а дубликаты автоматически исключаются. Если вы хотите, чтобы дубликаты Заказчика и Поставщика отображались отдельно, добавьте слово ВСЕ между UNION SELECT: UNION ALL SELECT tblSuppliers.Company, [Firstname] & ” ” & [LastName] AS Contact
Запрос также отобразит пять записей в алфавитном порядке по названию компании/поставщика.
В Access результирующий запрос будет отображаться со значком в виде двух перекрывающихся кружков, чтобы отличить его от стандартных запросов Select или Action.
Подробнее о наших учебных курсах Microsoft Access в Лондоне, Гилфорде и на юге Великобритании см. здесь.
Как создать запрос на объединение в SQL
Операторы на объединение/выбор можно создавать в любом продукте, поддерживающем SQL. Требования (каковы их требования и ограничения) остаются одинаковыми во всех экземплярах, а в некоторых средах требуется, чтобы командные слова были в ЗАГЛАВНОМ РЕГИСТРЕ, как показано ниже.
SELECT tblTable1.Field1, tblTable1.Field2, tblTable1.Field3, tblTable1.Field4, tblTable1.Field5
ОТ tblTable1
ORDER BY tblTable1.Field1;
UNION SELECT tblTable2.