Heim > Fragen und Antworten > Hauptteil
Ich versuche, eine Abfrage zu schreiben, die Daten aus einer Tabelle extrahiert und umwandelt und diese Daten dann in eine andere Tabelle einfügt. Ja, das ist eine Data Warehouse-Abfrage und ich habe sie in MS Access ausgeführt. Im Grunde möchte ich also eine Abfrage wie diese:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES (SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Ich habe es versucht, aber eine Syntaxfehlermeldung erhalten.
Wenn du das tun wolltest, was würdest du tun?
P粉9492671212023-10-11 14:11:14
您有两个语法选项:
选项 1
CREATE TABLE Table1 ( id int identity(1, 1) not null, LongIntColumn1 int, CurrencyColumn money ) CREATE TABLE Table2 ( id int identity(1, 1) not null, LongIntColumn2 int, CurrencyColumn2 money ) INSERT INTO Table1 VALUES(12, 12.00) INSERT INTO Table1 VALUES(11, 13.00) INSERT INTO Table2 SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1
选项 2
CREATE TABLE Table1 ( id int identity(1, 1) not null, LongIntColumn1 int, CurrencyColumn money ) INSERT INTO Table1 VALUES(12, 12.00) INSERT INTO Table1 VALUES(11, 13.00) SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 INTO Table2 FROM Table1 GROUP BY LongIntColumn1
请记住,选项 2 将创建一个仅包含投影上的列(SELECT 上的列)的表。
P粉3221067552023-10-11 10:09:04
没有“VALUES”,没有括号:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1;