Próbuję napisać zapytanie, które wyodrębnia i przekształca dane z tabeli, a następnie wstawia te dane do innej tabeli. Tak, to jest zapytanie dotyczące hurtowni danych i robię to w MS Access. Zasadniczo potrzebuję takiego zapytania:
INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
(SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Próbowałem, ale otrzymałem komunikat o błędzie składni.
Co byś zrobił, gdybyś chciał to zrobić?
Masz dwie opcje składni:
opcja 1
Opcja 2
Należy pamiętać, że opcja 2 utworzy tabelę z tylko kolumnami na rzucie (te na SELECT).
źródło
Usuń zarówno WARTOŚCI, jak i nawiasy.
źródło
Usuń
VALUES
ze swojego SQL.źródło
Uważam, że problemem w tym przypadku jest słowo kluczowe „wartości”. Używasz słowa kluczowego „wartości”, gdy wstawiasz tylko jeden wiersz danych. Nie potrzebujesz tego do wstawiania wyników selekcji.
Poza tym naprawdę nie potrzebujesz nawiasów wokół instrukcji select.
Z msdn :
Zapytanie dołączające wiele rekordów:
Zapytanie dołączające pojedynczy rekord:
źródło
Usuń „wartości”, gdy dołączasz grupę wierszy, i usuń dodatkowe nawiasy. Możesz uniknąć odwołania cyklicznego, używając aliasu dla avg (CurrencyColumn) (tak jak w przykładzie) lub w ogóle nie używając aliasu.
Jeśli nazwy kolumn są takie same w obu tabelach, zapytanie wyglądałoby tak:
I działałoby bez aliasu:
źródło
Cóż, myślę, że najlepszym sposobem byłoby (będzie?) Zdefiniowanie 2 zestawów rekordów i użycie ich jako pośrednika między 2 tabelami.
Ta metoda jest szczególnie interesująca, jeśli planujesz aktualizować tabele z różnych baz danych (tj. Każdy zestaw rekordów może mieć własne połączenie ...)
źródło
wstawianie danych z jednej tabeli do innej tabeli w innej BAZIE DANYCH
źródło
Czy chcesz wstawić wyodrębnianie do istniejącej tabeli?
Jeśli to nie ma znaczenia, możesz wypróbować poniższe zapytanie:
Utworzy nową tabelę -> T1 z wyodrębnionymi informacjami
źródło