Datensatz duplizieren wenn Kriterium erfüllt



  • Ich habe hier hier folgende SQL Anweisung die auch soweit funktioniert:

    UPDATE Gesamt, Ärzte_Wissen SET Anwendung = 'WMM'
    WHERE Ärzte_Wissen![SC-ID]=Gesamt!SCUSERID;
    

    Nun möchte ich aber nicht dass er das WMM in die Spalte Anwendung schreibt, sondern dass er wenn die SC-ID und die SCUSERID gleich sind, den gleichen Datensatz dupliziert und in die Spalte ANWEKUERZEL die in dem Datensatz vorhanden ist, 'WMM' updated. Wie mach ich das mit SQL?
    Das ganze soll unter Access erfolgen.



  • Ich würde ein INSERT dafür verwenden:

    INSERT INTO Ärzte (Name, Vorname,..., Anwkürzel)
    SELECT Name, Vorname,...,'WMM'
    FROM Ärzte INNER JOIN Gesamt ON Ärzte.SC_ID = Gesamt.SCUSERID
    WHERE /*Einschränkungen*/
    

    (ohne Garantie auf Richtigkeit)



  • hmm danke, aber so gehts in Access SQL nicht:

    INSERT INTO [Gesamt] ( NAME, VORNAME, ANWKUE )
    SELECT NAME, VORNAME, 'WMM'
    FROM [Gesamt] INNER JOIN [Ärzte_Wissen] ON [Ärzte_Wissen].SC_ID = [Gesamt].SCUSERID;
    

    muss ich immer Parameter für Ärzte_Wissen].SC_ID eingeben, woran liegt's?



  • ok geht jetzt, prinzipell, nun gibt er mir hier aber noch aus dass sich das Feld 'MONAT' auf mehr als auf eine Tabelle beziehen kann.(in der FROM Klausel)

    INSERT INTO Gesamt ( NAME, VORNAME, BNR, SCUSERID, SCART, ST, VRRPRS, MONAT,EXTINT, ANWKUE )
    SELECT NAME, VORNAME, BNR, SCUSERID, SCART, ST, VRRPRS,MONAT, EXTINT, 'EWMM'
    FROM Gesamt INNER JOIN Ärzte_Wissen ON Ärzte_Wissen.[SC-ID]=Gesamt.SCUSERID;
    


  • Dann mußt du noch dazusagen, welches MONAT du meinst (indem du Gesamt.MONAT draus machst).



  • ok geht auch: Eine letzte Frage noch: Warum macht er mir bei der Insert to Abfrage so viele Leerzeichen zwischen Ursprungstabelle und Insert to Befehl?

    INSERT INTO Gesamt ( NAME, VORNAME, BNR, SCUSERID, SCART, ST, VRRPRS, MONAT, JAHR, EXTINT, ANWKUE )
    SELECT NAME, VORNAME, BNR, SCUSERID, SCART, ST, VRRPRS, Ärzte_Wissen.Monat, Ärzte_Wissen.Jahr, EXTINT, 'EWMM'
    FROM Gesamt INNER JOIN Ärzte_Wissen ON Ärzte_Wissen.[SC-ID]=Gesamt.SCUSERID
    ORDER BY NAME;
    


  • Ich mein natürlcih leere Zellen.



  • Was meinst du mit "leere Zellen"?


Anmelden zum Antworten