Benutzer mit den meisten Antworten
INSERT über Ausschlussabfrage

Frage
-
Hallo,
ich würde gerne, ohne Schleifen programmieren zu müssen, ein Insert-Statement ausführen, das alle noch nicht vorhandenen Datensätze in eine Tabelle einträgt.
Dazu folgendes Szenario:tbl_MA: MA_ID, ...
tbl_SK: SK_ID...
tbl_Schulung: MA_ID, SK_ID, ...In die Tabelle tbl_Schulung soll für alle aktiven Mitarbeiter, denen eine bestimmte Schulungsklasse noch nicht zugewiesen wurde ein entsprechender Datensatz eingefügt werden.
Also etwa so in der Art:
INSERT INTO tbl_SCHULUNG (MA_ID, SK_ID) SELECT M.MA_ID, 100 AS SK_ID FROM dbo.tbl_MA AS M LEFT OUTER JOIN dbo.tbl_SCHULUNG AS S ON M.MA_ID = S.MA_ID WHERE (S.MA_ID IS NULL AND M.AKTIV = 1)
Jetzt muss nur noch irgendwie die Abfrage nach der nichtvorhandenen Schulungsklasse mit einfließen, die mir dann die korrekte Ergebnismenge zurückliefert, aber ich steh da leider voll auf dem Schlauch. Deshalb die Bitte, ob mir evtl. jemand auf die Sprünge helfen kann. Vielen Dank.
Viele Grüße, Volker
- Bearbeitet Volker S Dienstag, 17. Januar 2017 11:19
Antworten
-
Hallo Volker,
da die Namen der Tabellen und Spalten leider erstmal nichtssagend sind, ist das eher raten als wissen.
INSERT INTO tbl_SCHULUNG ( MA_ID, SK_ID ) SELECT MA_ID, 100 AS SK_ID FROM tbl_MA WHERE AKTIV = 1 AND MA_ID NOT IN ( SELECT MA_ID FROM tbl_Schulung WHERE SK_ID = 100 )
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Volker S Dienstag, 17. Januar 2017 11:38
Alle Antworten
-
Hallo Volker,
da die Namen der Tabellen und Spalten leider erstmal nichtssagend sind, ist das eher raten als wissen.
INSERT INTO tbl_SCHULUNG ( MA_ID, SK_ID ) SELECT MA_ID, 100 AS SK_ID FROM tbl_MA WHERE AKTIV = 1 AND MA_ID NOT IN ( SELECT MA_ID FROM tbl_Schulung WHERE SK_ID = 100 )
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Volker S Dienstag, 17. Januar 2017 11:38