Access: Aktionsabfragen kombinieren
-
Hi,
ich moechte das Ergebnis, dass ich aus einer SQL-Abfrage in Access gewinne, in eine Tabelle speichern.
Das ist die Abfrage, die ich speichern moechte:
((((select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_13_20 as u1320 on m.icd = u1320.code13 where m.jahr="2000" and u1320.code13 is null) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_20_2004 as u2004 on m.icd = u2004.code20 where (m.jahr="2001" or m.jahr="2002" or m.jahr="2003") and u2004.code20 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2004_2005 as u0405 on m.icd = u0405.code2004 where m.jahr="2004" and u0405.code2004 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2005_2006 as u0506 on m.icd = u0506.code2005 where m.jahr="2005" and u0506.code2005 is null))
Da dachte ich, dass ich daraus einfach ein
select * into neue_tabelle from (obige abfrage hier rein tun)
mache. Funktioniert aber nicht, ich erhalte die Fehlermeldung, dass die Aktionsabfrage (die Abfrage mit den UNIONs) nicht als Quelle genutzt werden kann.
Kennt jemand einen Trick, das Ergebnis der ersten Abfrage als Tabelle abzuspeichern?
-
INSERT INTO neue_tabelle FROM (SELECT...)
Sollte funktionieren
-
mortino schrieb:
INSERT INTO neue_tabelle FROM (SELECT...)
Sollte funktionieren
Mit
INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]])] [IN ExterneDatenbank] SELECT [Quelle.]Feld1[, Feld2[, ...] FROM Tabellenausdruck
, also
insert into test_tbl select * from ( ((((select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_13_20 as u1320 on m.icd = u1320.code13 where m.jahr="2000" and u1320.code13 is null) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_20_2004 as u2004 on m.icd = u2004.code20 where (m.jahr="2001" or m.jahr="2002" or m.jahr="2003") and u2004.code20 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2004_2005 as u0405 on m.icd = u0405.code2004 where m.jahr="2004" and u0405.code2004 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2005_2006 as u0506 on m.icd = u0506.code2005 where m.jahr="2005" and u0506.code2005 is null)) )
klappts auch nicht. Erhalte einen "Syntaxfehler in Join-Operation".
-
Das 'FROM' war bei mir natürlich Quatsch. Sorry.
Probier doch mal folgendes:
insert into test_tbl ((((select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_13_20 as u1320 on m.icd = u1320.code13 where m.jahr="2000" and u1320.code13 is null) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_20_2004 as u2004 on m.icd = u2004.code20 where (m.jahr="2001" or m.jahr="2002" or m.jahr="2003") and u2004.code20 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2004_2005 as u0405 on m.icd = u0405.code2004 where m.jahr="2004" and u0405.code2004 is null)) UNION (select m.id, m.icd, m.jahr from icd_mapping as m left join Umsteiger_2005_2006 as u0506 on m.icd = u0506.code2005 where m.jahr="2005" and u0506.code2005 is null))
Die Tabelle test_tbl muss natürlich auch die Felder id, icd und jahr als entsprechenden Typ in der angegebenen Reihenfolge haben.
-
Funktioniert leider auch nicht. Hier ist eine gute Loesung:
http://discuss.joelonsoftware.com/default.asp?joel.3.409847.7
Trotzdem danke, mortino.