Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 12
1

Запрос на три таблицы

08.09.2017, 10:11. Показов 292. Ответов 8

Есть три таблицы - Таблица1, Таблица2, Таблица3. Таблицы по структуре абсолютно одинаковые, скажем поля - номер_задачи(ключевое поле,совпадений нет), заказчик, задача.
Таблица1 загружается каждый день из внешнего источника, в ней есть записи, которых нет в Таблица2, и в Таблице2 есть записи которых нет в Таблица1, Таблица2 - результат. Таблица1 есть отсутсвующие записи в Таблица2 - новые задачи. В Таблица2 есть записи, которых нет в Таблица1 - решенные задачи.
Требуется в Таблица2 перенести решенные задачи в Таблица3 (добавить к существующим) и добавить новые из Таблица1.
Надеюсь вменяемо объяснил! Прошу Вашей помощи! С SQL знаком на уровне - сделать выборку...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2017, 10:11
Ответы с готовыми решениями:

Запрос на три связанные таблицы
Здравствуйте! Имеется три вот такие таблицы:...

Как объединить три таблицы в одну и редактировать ее через запрос?
Подскажите пожалуйста. Как сделать редактируемую таблицу. У меня есть три таблицы которые...

Запрос на добавление с выбором таблицы-источника и таблицы-получателя при запуске
Добрый день! Подскажите, пожалуйста, как можно создать запрос на добавление записей в таблицу,...

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

8
Эксперт MS Access
16290 / 6739 / 1473
Регистрация: 21.06.2012
Сообщений: 12,446
08.09.2017, 10:22 2
Новые из Таблица1 добавить в Таблица2.
SQL
1
2
3
4
INSERT INTO Таблица2
SELECT Таблица1.*
FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.номер_задачи = Таблица2.номер_задачи
WHERE Таблица1.номер_задачи IS NULL
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 12
08.09.2017, 10:31  [ТС] 3
А как перенести старые из Таблица2? В одном запросе?
0
Эксперт MS Access
16290 / 6739 / 1473
Регистрация: 21.06.2012
Сообщений: 12,446
08.09.2017, 10:40 4
Делайте еще один запрос по этому образцу ... . В одном запросе в разные таблицы добавление не получится.
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 12
08.09.2017, 10:55  [ТС] 5
Хорошо, но их надо удалить в Таблица2 и перенести в Таблица3. Этот этап каким запросом? Меня именно этот этап интересует, в связке 3 таблицы получается - "если в Таблица1 нет записей из Таблица2, то из Таблица2 переносим их в Таблица3".
0
Эксперт MS Access
16290 / 6739 / 1473
Регистрация: 21.06.2012
Сообщений: 12,446
08.09.2017, 11:03 6
Правила форума: 4.4. На каждый вопрос создавайте по одной теме ... .

Не по теме:

Дайте водички попить, а то так кушать хочется, аж переночевать негде ... .

1
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 12
08.09.2017, 11:12  [ТС] 7
Правила форума: 4.4. На каждый вопрос создавайте по одной теме ... .
Поясните. Вопрос один, и я не вижу как его разбить, не потеряв сути вопроса.
0
Эксперт MS Access
16290 / 6739 / 1473
Регистрация: 21.06.2012
Сообщений: 12,446
08.09.2017, 11:24 8
Цитата Сообщение от Angel_D13 Посмотреть сообщение
Поясните.
Поясняю: в начальном поста речь шла только о добавлении записей, теперь появилось удаление. И, непонятно, зачем его делать в Таблице1
Цитата Сообщение от Angel_D13 Посмотреть сообщение
Таблица1 загружается каждый день из внешнего источника
И, обратите внимание, приведенный запрос добавляет только несуществующие записи (условие Таблица1.номер_задачи IS NULL).
0
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 12
08.09.2017, 14:19  [ТС] 9
В начальном посте шла речь о трех таблицах:
Требуется в Таблица2 перенести решенные задачи в Таблица3 (добавить к существующим) и добавить новые из Таблица1.
Что подразумевает и добавление и удаление. Может я не правильно выразился как (надо было дополнить, - "и добавить новые из Таблица1 в Таблица2"), но речь точно не только о добавлении. Первый этап, да, вы правильно мне советуете, но задача не решится без второго этапа, - "если в Таблица1 нет записей из Таблица2, то из Таблица2 переносим их в Таблица3".
И, обратите внимание, приведенный запрос добавляет только несуществующие записи (условие Таблица1.номер_задачи IS NULL).
Да, я понял это.

Добавлено через 2 часа 32 минуты
Мне тут накидали запрос в SQL, но он отказывается выполняться в Access:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO [Таблица3] ([Номер задачи], [Заказчик], [Задача])
SELECT [Таблица2].[Номер задачи], [Таблица2].[Заказчик], [Таблица2].[Задача]
FROM [Таблица2]
LEFT JOIN [Таблица1] ON [Таблица2].[Номер задачи] =  [Таблица1].[Номер задачи]
WHERE  [Таблица1].[Номер задачи] IS NULL;
 
DELETE [Таблица2].*
FROM [Таблица2]
WHERE [Таблица2].[Номер задачи] IN (
                                   SELECT t2.[Номер задачи]
                                   FROM [Таблица2] AS t2 
                                   LEFT JOIN [Таблица1] ON t2.[Номер задачи] =  [Таблица1].[Номер задачи]
                                   WHERE  [Таблица1].[Номер задачи] IS NULL
                                   );
 
INSERT INTO [Таблица2] ([Номер задачи], [Заказчик], [Задача])
SELECT [Таблица1].[Номер задачи], [Таблица1].[Заказчик], [Таблица1].[Задача]
FROM [Таблица1]
LEFT JOIN [Таблица2] ON [Таблица2].[Номер задачи] =  [Таблица1].[Номер задачи]
WHERE  [Таблица2].[Номер задачи] IS NULL;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2017, 14:19

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Связать три таблицы
Добрый день уважаемые форумачане! Пожалуйста не закидывайте помидорами, ещё только учусь....

Объединить три таблицы
Есть таблица города Состоит ид, и название. И есть таблица посылка. В посылке указывает откуда...

LEFT JOIN три таблицы
Люди добрые помогите оформить такую вещь. Есть страница новости, данные к которой: name , user ...

Запрос сумма с таблицы+запрос
Добрый день, подскажите создаю запрос на суммирование строк из таблицы+строки из запроса, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.