Discussion:
SQL Insert mehrerer Zeilen plus einen Wert
(zu alt für eine Antwort)
marcusx
2007-01-03 16:53:28 UTC
Permalink
Hallo NG!

Ist es irgendwie möglich mit einen SQL Statement mehrere Zeilen und
gleichzeitig einen gleichen Wert in jeder Zeile anzulegen.

Also ich habe eine Tabelle die enhält verscheidenen Tage als Datum.
Jetzt möchte ich die id dieser Tage in eine andere Tabelle schreiben.
Würde ja so gehen (ohne idperson):

INSERT INTO teilnehmer (idperson, idkurstag)
SELECT idkurstag
FROM kurstag
WHERE idkurs=1;

Zu jeder Zeile die jetzt aus dem Select Ergebnis eingefügt wird,
möchte ich aber noch den Wert idperson eingeben. Geht das in einem
Aufwasch? Oder kann man sowas nur per VBA machen indem man jede Zeile
in einer Schleife abgrasen läßt und ein INSERT INTO teilnehmer (aaa,
bbbb) VALUES (bla, bloe); ausführen läßt?

vg
Marcus
Mark Doerbandt
2007-01-03 16:58:43 UTC
Permalink
Hallo,
Post by marcusx
INSERT INTO teilnehmer (idperson, idkurstag)
SELECT idkurstag
FROM kurstag
WHERE idkurs=1;
Zu jeder Zeile die jetzt aus dem Select Ergebnis eingefügt wird,
möchte ich aber noch den Wert idperson eingeben.
Meinst Du so?

INSERT INTO teilnehmer
SELECT idkurstag, 'Marcus' AS idperson
FROM kurstag
WHERE idkurs=1;

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Thomas Möller
2007-01-03 17:05:46 UTC
Permalink
Hallo Mark,
Post by Mark Doerbandt
Post by marcusx
INSERT INTO teilnehmer (idperson, idkurstag)
SELECT idkurstag
FROM kurstag
WHERE idkurs=1;
Zu jeder Zeile die jetzt aus dem Select Ergebnis eingefügt wird,
möchte ich aber noch den Wert idperson eingeben.
Meinst Du so?
INSERT INTO teilnehmer
SELECT idkurstag, 'Marcus' AS idperson
FROM kurstag
WHERE idkurs=1;
ich glaube, Du hast die Reihenfolge Felder verwechselt. ;-)
Ausserdem hätte ich bei "personid" eher an einen Zahlenwert als an eine
String gedacht. ;-)


CU
--
Thomas

Homepage: www.Team-Moeller.de

Ich wünsche allen einen
guten Start ins Jahr 2007
Mark Doerbandt
2007-01-03 17:14:41 UTC
Permalink
Hallo, Thomas,
Post by Thomas Möller
Ausserdem hätte ich bei "personid" eher an einen Zahlenwert als an eine
String gedacht. ;-)
mag sein, vielleicht meint er aber auch noch einen weiteren JOIN...

Gruss - Mark
Thomas Möller
2007-01-03 17:03:13 UTC
Permalink
Hallo Marcus!

In dieser NG ist es üblich den vollen Realnamen (Vor- und Nachname)
anzugeben. Danke!
Post by marcusx
Ist es irgendwie möglich mit einen SQL Statement mehrere Zeilen und
gleichzeitig einen gleichen Wert in jeder Zeile anzulegen.
Also ich habe eine Tabelle die enhält verscheidenen Tage als Datum.
Jetzt möchte ich die id dieser Tage in eine andere Tabelle schreiben.
INSERT INTO teilnehmer (idperson, idkurstag)
SELECT idkurstag
FROM kurstag
WHERE idkurs=1;
Zu jeder Zeile die jetzt aus dem Select Ergebnis eingefügt wird,
möchte ich aber noch den Wert idperson eingeben. Geht das in einem
Aufwasch? Oder kann man sowas nur per VBA machen indem man jede Zeile
in einer Schleife abgrasen läßt und ein INSERT INTO teilnehmer (aaa,
bbbb) VALUES (bla, bloe); ausführen läßt?
Wenn ich den letzten Absatz lese, weiss ich nicht, ob ich Dich richtig
verstanden habe.

Wenn es darum geht, in der Abfrage eine fixe "idperson" für alle
einzufügenden Datensätze einzufügen, dann würde ich das wie folgt
probieren:

INSERT INTO teilnehmer (idperson, idkurstag)
SELECT 17, idkurstag
FROM kurstag
WHERE idkurs=1;

In obigen Beispiel habe ich für idperson den Wert 17 angenommen.

HTH
--
Thomas

Homepage: www.Team-Moeller.de

Ich wünsche allen einen
guten Start ins Jahr 2007
marcusx
2007-01-03 20:57:36 UTC
Permalink
Post by Thomas Möller
Hallo Marcus!
In dieser NG ist es üblich den vollen Realnamen (Vor- und Nachname)
anzugeben. Danke!
Hallo Thomas!

Ich weis - ich hab mit Google gepostet und habs sogar vorher noch
umgestellt. Auch sehe ich meinen vollen Namen wenn ich "Mein Konto"
anschaue. Bei der Nachricht selber wird allerdings der alte Wert
verwendet - ich hoffe das wird bald upgedated. Sorry!
Post by Thomas Möller
Post by marcusx
Ist es irgendwie möglich mit einen SQL Statement mehrere Zeilen und
gleichzeitig einen gleichen Wert in jeder Zeile anzulegen.
Also ich habe eine Tabelle die enhält verscheidenen Tage als Datum.
Jetzt möchte ich die id dieser Tage in eine andere Tabelle schreiben.
INSERT INTO teilnehmer (idperson, idkurstag)
SELECT idkurstag
FROM kurstag
WHERE idkurs=1;
Zu jeder Zeile die jetzt aus dem Select Ergebnis eingefügt wird,
möchte ich aber noch den Wert idperson eingeben. Geht das in einem
Aufwasch? Oder kann man sowas nur per VBA machen indem man jede Zeile
in einer Schleife abgrasen läßt und ein INSERT INTO teilnehmer (aaa,
bbbb) VALUES (bla, bloe); ausführen läßt?
Wenn ich den letzten Absatz lese, weiss ich nicht, ob ich Dich richtig
verstanden habe.
Wenn es darum geht, in der Abfrage eine fixe "idperson" für alle
einzufügenden Datensätze einzufügen, dann würde ich das wie folgt
INSERT INTO teilnehmer (idperson, idkurstag)
SELECT 17, idkurstag
FROM kurstag
WHERE idkurs=1;
In obigen Beispiel habe ich für idperson den Wert 17 angenommen.
Genauso - dein Beispiel funktioniert perfekt. Ist ja total einfach, ich
hab in diversen Dokumentationen immer nur entweder nur mit SELECT oder
nur mit VALUES Bsp. gefunden. Ich dachte das es mit einer AS
Konstruktion gehen müsste. So ähnlich wie im Bsp vom Mark - das hat
mir aber Access in meiner Form nicht gefressen.

Danke für die schnelle Hilfe!
Gruß
Marcus
Post by Thomas Möller
HTH
--
Thomas
Homepage: www.Team-Moeller.de
Ich wünsche allen einen
guten Start ins Jahr 2007
Loading...