В SQL Server я пытаюсь создать временную таблицу, а затем объединить ее на основе указанных критериев уникального ключа индекса, упорядочив их по системным номерам. Это выглядит примерно так:
SELECT DISTINCT
t1.[SysNr] AS [oldSysNr], t1.[SysNr] AS [newSysNr],
t1.[Year], t1.[WorkTm], t1.[AMSTC],
t1.[AJCC], t1.[ShifNum], t1.[FMN]
INTO
#TEMPTABLE
FROM
AppData.SCHED AS t1
JOIN
AppData.SCHED AS tS ON t1.ShifNum = tS.ShifNum
AND t1.WorkTM = tS.WorkTM
AND t1.FMN = tS.FMN
WHERE
t1.Year = 2019;
Это, по сути, даст мне старые записи, необходимые для столбца oldSysNr, поскольку год - это параметр, на который я смотрю. Тем не менее мне нужно обновить столбец newSysNr в том же запросе, нет отдельного запроса для обновления. Есть ли способ, которым это может быть достигнуто? Я знаю, что обновление выполняется только как отдельный запрос.
Вот данные, полученные из запроса:
oldSysNr NewSysNr Year WorkTm AMSTC AJJC SHIFNUM FMN
-----------------------------------------------------------
24 24 2019 3 WVB GH 9 YUBMS
25 25 2019 3 BMS MJ 8 YUBMS
26 26 2019 3 BMS PP 8 MJUNL
27 27 2019 4 ZMG MJ 5 MJUNL
28 28 2019 5 BR OP 3 COLHP
Вот желаемые результаты:
oldSysNr NewSysNr Year WorkTm AMSTC AJJC SHIFNUM FMN
-----------------------------------------------------------
24 57 2019 3 WVB GH 9 YUBMS
25 58 2019 3 BMS MJ 8 YUBMS
26 59 2019 3 BMS PP 8 MJUNL
27 60 2019 4 ZMG MJ 5 MJUNL
28 61 2019 5 BR OP 3 COLHP
Как уже упоминалось, параметром, на который он смотрит, является год, и, учитывая, что вся идея заключается в том, что он обновит NewSysNr при условии, что ему будет дано такое же выражение соединения, но это будет еще один год, например 2020. Помощь в любом Данный способ по этому вопросу высоко ценится.