Seite 1 von 1
Insert mit Select Statement?
Verfasst: Sa 28. Nov 2015, 13:22
von MacLeod
Mahlzeit,
ich habe zwei Tabellen, eine große Tabelle 1 die alle Daten enthält. Aus der großen Tabelle möchte ich einige Spalten in eine andere Tabelle 2 übernehmen.
Tab 2 besteht aus 8 Spalten: ID (Autoincr.),A,B,C,D,E,F,G
INSERT INTO "2" ( "A","B","C","D","E","F") values (
SELECT "a","b",SUBSTRING(c,4,4),SUBSTRING(c,1,2),"d","e" from "1")
Beim Ausführen des SQL bekomme ich aber immer: "Column count does not match in statement ..."
Das Select allein ausgeführt liefert alle gewünschten Daten. Und nach Adam Riese stimmt auch die Anzahl der Spalten überein.
Hat jemand bitte einen Tip für mich woran das liegen könnte?
VG
MacLeod
Re: Insert mit Select Statement?
Verfasst: Sa 28. Nov 2015, 13:32
von F3K Total
Hi,
entweder values oder Select darum:
Code: Alles auswählen
INSERT INTO "2" ( "A","B","C","D","E","F") SELECT "a","b",SUBSTRING(c,4,4),SUBSTRING(c,1,2),"d","e" from "1"
oder
Code: Alles auswählen
INSERT INTO "2" ( "A","B","C","D","E","F") VALUES( 17,'Hallo','Montag','Herr',23.448,TRUE)
wobei dann natürlich der Datentyp zur Spalte passen muss.
Gruß R
Re: Insert mit Select Statement?
Verfasst: So 29. Nov 2015, 09:11
von MacLeod
F3K Total hat geschrieben:Hi,
entweder values oder Select darum:
Code: Alles auswählen
INSERT INTO "2" ( "A","B","C","D","E","F") SELECT "a","b",SUBSTRING(c,4,4),SUBSTRING(c,1,2),"d","e" from "1"
...
Gruß R
Danke.
Für mich kommt dann nur die erste Variante in Frage.
Nur bekomme ich damit leider einen weiteren Fehler
SQL-Status: HY000
Fehler-Code: 1000
syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
Ich muss mal schauen woran das liegt.
Schönen ersten Advent!
Re: Insert mit Select Statement?
Verfasst: So 29. Nov 2015, 09:54
von RobertG
Hallo MacLeod,
hast Du die Abfrage so ausprobiert?
Code: Alles auswählen
SELECT "a","b",SUBSTRING(c,4,4),SUBSTRING(c,1,2),"d","e" from "1"
Vielleicht sind es ja nur die Anführungszeichen um die "c".
Ich habe das gerade bei einer einfachen Tabelle mit zwei Spalten getestet - lief problemlos ab.
Gruß
Robert
Re: Insert mit Select Statement?
Verfasst: So 29. Nov 2015, 10:24
von MacLeod
Auch der Feldname C war entsprechend mit " eingefasst. Das ist ein Schreibfehler gestern hier im Forum gewesen.
Code: Alles auswählen
SELECT "a","b",SUBSTRING("c",4,4),SUBSTRING("c",1,2),"d","e" from "1"
Ein evtl. Problem fällt mir gerade noch auf.
Die Felder aus Tabelle 1 sind alles Varchars. In Tabelle 2 sind nur die Felder A und F Varchar, B ist Smallint und C,D,E sind Numeric. Kann das der Grund für die Fehlermeldung sein?
Re: Insert mit Select Statement?
Verfasst: So 29. Nov 2015, 10:28
von F3K Total
Logo!
F3K Total hat geschrieben:... wobei dann natürlich der Datentyp zur Spalte passen muss.
Du kannst eine ggf. verfremdete Version deiner DB, ein paar Datenzeilen reichen, hier hochladen, gezippt, dann haben wir es in zwei MInuten.
Wenn die DB trotz löschen vieler Zeilen zu groß zum Hochladen ist, führe einmalig über Extras/SQL... den Befehl
, um sie zu komprimieren, aus.
Gruß R
Re: Insert mit Select Statement?
Verfasst: So 29. Nov 2015, 21:27
von MacLeod