Я пытаюсь написать запрос, который извлекает и преобразует данные из таблицы, а затем вставляет эти данные в другую таблицу. Да, это запрос хранилища данных, и я делаю это в MS Access. Так что в основном я хочу такой запрос:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
(SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Я пытался, но получил сообщение об ошибке синтаксиса.
Что бы вы сделали, если хотите это сделать?
У вас есть два варианта синтаксиса:
Опция 1
Вариант 2
Имейте в виду, что в варианте 2 будет создана таблица с только столбцами в проекции (те, что в SELECT).
источник
Удалить оба значения и скобки.
источник
Удалить
VALUES
из вашего SQL.источник
Я полагаю, что вашей проблемой в этом случае является ключевое слово "values". Вы используете ключевое слово «values», когда вставляете только одну строку данных. Для вставки результатов выбора вам это не нужно.
Кроме того, вам действительно не нужны скобки вокруг оператора select.
Из MSDN :
Запрос на добавление нескольких записей:
Запрос на добавление одной записи:
источник
Удалите «значения» при добавлении группы строк и удалите лишние скобки. Вы можете избежать циклической ссылки, используя псевдоним для avg (CurrencyColumn) (как вы сделали в вашем примере) или вообще не используя псевдоним.
Если имена столбцов одинаковы в обеих таблицах, ваш запрос будет выглядеть так:
И это будет работать без псевдонима:
источник
Ну, я думаю, что лучшим способом было бы (будет?) Определить 2 набора записей и использовать их в качестве промежуточного звена между двумя таблицами.
Этот метод особенно интересен, если вы планируете обновлять таблицы из разных баз данных (т.е. каждый набор записей может иметь свое собственное соединение ...)
источник
вставка данных из одной таблицы в другую таблицу в другой базе данных
источник
Вы хотите вставить извлечение в существующую таблицу?
Если это не имеет значения, вы можете попробовать следующий запрос:
Это создаст новую таблицу -> T1 с извлеченной информацией
источник