Ich versuche, eine Abfrage zu schreiben, die Daten aus einer Tabelle extrahiert und transformiert und diese Daten dann in eine andere Tabelle einfügt. Ja, dies ist eine Data Warehousing-Abfrage, und ich mache sie in MS Access. Im Grunde möchte ich eine Abfrage wie diese:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
(SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Ich habe versucht, aber eine Syntaxfehlermeldung erhalten.
Was würden Sie tun, wenn Sie dies tun möchten?
Sie haben zwei Syntaxoptionen:
Option 1
Option 2
Beachten Sie, dass Option 2 eine Tabelle nur mit den Spalten in der Projektion (denen in SELECT) erstellt.
quelle
Entfernen Sie beide WERTE und die Klammer.
quelle
Entfernen Sie
VALUES
aus Ihrem SQL.quelle
Ich glaube, Ihr Problem in diesem Fall ist das Schlüsselwort "values". Sie verwenden das Schlüsselwort "values", wenn Sie nur eine Datenzeile einfügen. Zum Einfügen der Ergebnisse einer Auswahl benötigen Sie diese nicht.
Außerdem brauchen Sie die Klammern um die select-Anweisung wirklich nicht.
Von msdn :
Append-Abfrage mit mehreren Datensätzen:
Append-Abfrage mit einem Datensatz:
quelle
Entfernen Sie "Werte", wenn Sie eine Gruppe von Zeilen anhängen, und entfernen Sie die zusätzlichen Klammern. Sie können den Zirkelverweis vermeiden, indem Sie einen Alias für avg (CurrencyColumn) verwenden (wie in Ihrem Beispiel) oder indem Sie überhaupt keinen Alias verwenden.
Wenn die Spaltennamen in beiden Tabellen gleich sind, sieht Ihre Abfrage folgendermaßen aus:
Und es würde ohne einen Alias funktionieren:
quelle
Nun, ich denke, der beste Weg wäre (wird?), 2 Recordsets zu definieren und sie als Zwischenstufe zwischen den 2 Tabellen zu verwenden.
Diese Methode ist besonders interessant, wenn Sie Tabellen aus verschiedenen Datenbanken aktualisieren möchten (dh jedes Recordset kann eine eigene Verbindung haben ...).
quelle
Einfügen von Daten aus einer Tabelle in eine andere Tabelle in einer anderen DATENBANK
quelle
Möchten Sie die Extraktion in eine vorhandene Tabelle einfügen?
Wenn es keine Rolle spielt, können Sie die folgende Abfrage versuchen:
Es wird eine neue Tabelle -> T1 mit den extrahierten Informationen erstellt
quelle