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