【发布时间】:2016-01-28 21:18:13
【问题描述】:
我有一种情况,我需要用前一行值更新记录。
来源:
|MatId | BaseId |Flag|Pkg1| CS1
--------------------------------
|3001 | 3001 | 1 | 20 | 2 |
|3002 | 3001 | 0 | 15 | 3 |
|3003 | 3001 | 0 | 10 | 4 |
这里 3001 (MatID) 和 3001(BaseID) 相同,所以 FLAG =1,在下一条记录中只有 BASEID 相同。输出应该只有 PKG1 字段更新为当前行值。
目标或输出:
|MatId | BaseId|Flag|Pkg1|CS1
------------------------------
|3001 | 3001 | 1 | 20 | 2|
|3002 | 3001 | 0 | 20 | 3|
|3003 | 3001 | 0 | 20 | 4|
如上面的目标所示,我必须用第一条记录 20 中的值更新 PKG1 中的两个值。Pkg1 的列也很多,如何通过单个查询更新所有列?
非常感谢任何帮助。
谢谢。
【问题讨论】:
-
您没有为您期望的上一行指定
ORDER。假设从您的示例中它是从 MatID 排序的。 -
从BaseId升序排列
-
如果
BaseID= 以前的MatID,你想更新Pkg1,对吗? -
@Megatron 是的,没错
-
好的,
MatId是唯一的吗?