如何用同一视图表(SQL)中另一个字段(不同列)的值替换一个字段中的值?

时间:2019-04-07 14:47:28

标签: sql tsql

我想知道是否可以通过使用另一列和另一行中的值来替换一个字段中的值。

For Example, click this to view the table image.

我希望将第15行中的SumRedeemed值400替换为值-1 *(-395);值-395来自第6行中的EarnPointsLeft(两者具有相同的CID,表示它们是同一个人)。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您需要此更新语句:

update t
set t.sumredeemed = (-1) * (select earnpointsleft from FifoPtsView where cid = t.cid)
from FifoPtsView t
where t.cid = 5000100008 and t.earnpointsleft = 0

如果select语句仅返回1行,这将起作用。

答案 1 :(得分:0)

您只需更新表格

update t
set t.sumredeemed = ABS(t2.earnpointsleft )
from FifoPtsView t join FifoPtsView t2 on t.cid = t.cid and isnull(t2.earnpointsleft,0)>0

如果您想使用负值,则可以删除ABS, 请给我您的反馈意见