ath 0 Geschrieben 9. Dezember 2021 Melden Geschrieben 9. Dezember 2021 Hallo, ich sehe wahrscheinlich den Wald vor lauter Bäumen nicht und brauche einen Schubs in die richtige Richtung. Ich habe eine einfache Tabelle in der Form: CREATE TABLE [dbo].[Test]( [PersNummer] [char](6) NULL, [Stand] [datetime] NULL, [Wert] [nchar](10) NULL ) ON [PRIMARY In dieser Tabelle stehen bspw. folgende Sätze: INSERT INTO [dbo].[Test] VALUES ('4711', '2019-09-01 00:00:00.000', '18'); INSERT INTO [dbo].[Test] VALUES ('4712', '2019-08-01 00:00:00.000', '51') INSERT INTO [dbo].[Test] VALUES ('4711', '2021-10-01 00:00:00.000', '81') INSERT INTO [dbo].[Test] VALUES ('4711', '2021-12-01 00:00:00.000', '151') INSERT INTO [dbo].[Test] VALUES ('4712', '2020-06-01 00:00:00.000', '60') Nun möchte ich die je Personalnummer das Feld Wert für den aktuellsten Stand updaten. Die Selektion an sich würde so gelingen: SELECT T.* FROM Test as T inner join (select x.PersNummer, max(x.stand) as MaxDatum from test as X group by x.PersNummer) as y on t.PersNummer = y.PersNummer and t.stand = y.MaxDatum und als Ergebnis PersNummer Stand Wert 4712 2020-06-01 00:00:00.000 60 4711 2021-12-01 00:00:00.000 151 In diesen Sätze soll der Wert von 60 bzw. 151 durch 100 ersetzt werden. Irgendeine Idee? Danke und Gruß Andreas
Beste Lösung MDD 13 Geschrieben 9. Dezember 2021 Beste Lösung Melden Geschrieben 9. Dezember 2021 Im Prinzip ist es die selbe Lösung wie deine Abfrage update test set wert = 100 from test join ( select max(stand) as maxDat, persnummer as persnr from test group by persnummer ) as x on x.persnr = test.PersNummer and test.stand = maxDat
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden