我的表price_info包含以下列:
group_id (int)
product_id (int)
date (datetime)
price_override (money, nullable)
一些示例值:
group_id product_id date price_override
1 1 2014-02-10 25
1 1 2014-02-11 30
1 1 2014-02-12 NULL
1 2 2014-02-10 40
1 2 2014-02-11 40
1 2 2014-02-12 40
1 3 2014-02-10 NULL
1 3 2014-02-11 NULL
1 3 2014-02-12 NULL
2 1 2014-02-10 42
2 1 2014-02-11 52
2 1 2014-02-12 70
2 2 2014-02-10 28
2 2 2014-02-11 87
2 2 2014-02-12 96
2 3 2014-02-10 45
2 3 2014-02-11 89
2 3 2014-02-12 NULL
我想要做的是更新product_id的price_override(并应用一些计算),其中group_id和date相同且price_override不为null。
我想要做的计算是将它乘以@ratio(float)并添加@offset(float)
例如,对于group_id 1,product_id 3,我想将它的price_override设置为group_id 1(product_id 2(其price_override不为空)的(price_override * @ratio)+ @offset)。
我尝试过搜索,但到目前为止,我发现的所有内容都是基于使用唯一ID更新1行。
根据请求的编辑,在给定值的情况下更新单行将是以下内容:
update price_info set price_override = @value where group_id = @group_id and product_id = @product_id and date = @date
答案 0 :(得分:0)
如果我理解你的问题,
update price_info
set price_override = ((price_override * @ratio) + @offset)
where (group_id = 1) and ([DATE] = '2/10/14') and (price_override is not null)
可能会做你想要的。