更新 T-SQL 中下一条或上一条记录的值

Update values from next or previous records in T-SQL

我在 T-SQL 中有以下 table: 表 1:

我需要根据 [MedicationCategory] ​​gruppping

将 [DrugClassificationFK] 字段中的 -1 值更新为非 -1 值

因此,例如,对于 "fluticasone" MedicationCategory,所有“-1”记录也应等于 98 作为 WHID = 1182

的记录

这是我需要看到的结果:

有什么方法可以在 T-SQL(在 SSMS 中)中实现吗?

(在 Access 中,我可以通过“-1”和非“-1”值将此 table 一分为二,然后使用非“-1”更新原始 table新列表,加入 [MedicationCategory])

更优雅的做法?

谢谢...

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

希望此查询适用于您的情况:

注意:未测试