Estou tentando escrever uma consulta que extrai e transforma dados de uma tabela e, em seguida, insira esses dados em outra tabela. Sim, esta é uma consulta de data warehouse e estou fazendo isso no MS Access. Então, basicamente, eu quero uma consulta como esta:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
(SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Tentei, mas recebi uma mensagem de erro de sintaxe.
O que você faria se quisesse fazer isso?
Você tem duas opções de sintaxe:
Opção 1
opção 2
Lembre-se de que a opção 2 criará uma tabela com apenas as colunas na projeção (aquelas no SELECT).
fonte
Remova os VALUES e os parênteses.
fonte
Remova
VALUES
do seu SQL.fonte
Acredito que seu problema nesta instância seja a palavra-chave "values". Você usa a palavra-chave "values" quando está inserindo apenas uma linha de dados. Para inserir os resultados de uma seleção, você não precisa disso.
Além disso, você realmente não precisa dos parênteses ao redor da instrução select.
Do msdn :
Consulta de acréscimo de vários registros:
Consulta de acréscimo de registro único:
fonte
Remova "valores" ao anexar um grupo de linhas e remova os parênteses extras. Você pode evitar a referência circular usando um alias para avg (CurrencyColumn) (como você fez no seu exemplo) ou não usando um alias.
Se os nomes das colunas forem os mesmos nas duas tabelas, sua consulta será assim:
E funcionaria sem um pseudônimo:
fonte
Bem, acho que a melhor maneira seria (será?) Definir 2 conjuntos de registros e usá-los como um intermediário entre as 2 tabelas.
Esse método é particularmente interessante se você planeja atualizar tabelas de diferentes bancos de dados (ou seja, cada conjunto de registros pode ter sua própria conexão ...)
fonte
inserção de dados de uma tabela para outra tabela em diferentes DATABASE
fonte
Deseja inserir extração em uma tabela existente?
Se isso não importa, você pode tentar a consulta abaixo:
Ele criará uma nova tabela -> T1 com as informações extraídas
fonte