[英]SQL-how to bring the value of first row to the second row
我有一个具有以下值的表:
week_no amt amt_diff
1 500 100
2 600 300
3 900 100
4 1000 null
当我减去week2.amt-week1.amt
,差异将保存在week_no=1
的amt_diff
列中。 但是我希望结果与week_no=2
记录一起存储。
谁能帮助我使用SQL?
我认为这应该有效。 您可以先将其设为SELECT
,以确保获得所需的结果。 该语法在SQL Server中有效,对于其他RDBMS不确定。
UPDATE m2
SET amt_diff = (m2.amt-m1.amt)
FROM MyTable m2
INNER JOIN MyTable m1
ON m1.week_no = (M2.week_no - 1)
它将更新所有要在一周后计算的记录。
仅选择值:
SELECT amt_diff = (m2.amt-m1.amt)
FROM MyTable m2
INNER JOIN MyTable m1
ON m1.week_no = (M2.week_no - 1)
UPDATE YOURTABLE T
SET T.AMT_DIFF = ( T.AMT - NVL(( SELECT TT.AMT
FROM YOURTABLE TT
WHERE TT.WEEK_NO = (T.WEEK_NO - 1)
)
,0)
)
WHERE T.WEEK_NO = 2;
可能会为您工作。
update k
set k.amt_diff=(select k2.amt from week k2 where week_no=k.week_no+1)-amt
from week k
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.