Обновить значения из следующих или предыдущих записей в T- SQL - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующая таблица в T- SQL: Таблица1:

enter image description here

Мне нужно обновить значения -1 в [DrugClassificationFK] поле, на значения, отличные от -1, согласно [MedicationCategory] gruppping

Так, например, для категории MedicationCategory «флутиказон» все записи «-1» также должны быть равны 98 как запись, где WHID = 1182

Вот что мне нужно в результате увидеть: enter image description here

Есть ли способ сделать это в T- SQL (в SSMS)?

(в Access я мог бы разделить эту таблицу на две части, используя значения «-1» и «не -1», а затем обновить исходную таблицу, добавив новую таблицу, отличную от «-1», присоединяясь к [MedicationCategory ])

Более элегантный способ сделать это?

Спасибо ...

1 Ответ

1 голос
/ 07 мая 2020
UPDATE Z
SET Z.DRUGCLASSIFICATIONFK=S.MAX_DRUGC
FROM MedicationCategory Z
INNER JOIN(SELECT MedicationCategory,MAX(DRUGCLASSIFICATIONFK) AS MAX_DRUGC
FROM TABLE1
GROUP BY MedicationCategory) S ON S.MedicationCategory=M.MedicationCategory

Надеюсь, этот запрос работает в вашем случае:

Примечание: не проверено

...