sql server 2008 批量修改表内数据值,由于表内数据极大,需要大神帮忙写写

现有表bet,bet表里面有多个字段,abcde五个字段,现在想修改批量abc三个字段内的数值,可是这三个字段的数值需要在数据库内计算完毕以后才能修改,计算公式如下先判断... 现有表bet,bet表里面有多个字段,a b c d e 五个字段,现在想修改批量a b c三个字段内的数值,可是这三个字段的数值需要在数据库内计算完毕以后才能修改,计算公式如下
先判断300-d*e是否大于0,如果300-d*e大于0则有下面的计算公式
b是(300-d*e)/d (如何该值大于等于15,则取值为15) 50*d(如何该值大于等于6,则取值为6) 26*e(如何该值大于等于12,则取值为12) 这三个值的和,即 b=(300-d*e)/d+50*d+26*e
a=b*e+50
c=(300-d*e)/e (如何该值大于等于29,则取值为29,如果该值)
计算完毕后对比一下b c 的大小,如果b<c,则b=c,计算公式为(300-d*e)/(e+d)

如果300-d*e大于0则有下面的计算公式
b是(300-d*e)/d (如何该值大于等于15,则取值为15) 26*e(如何该值大于等于12,则取值为12) 这两个值的和,即 b=(300-d*e)/d+26*e
c=25
a=50-b*e

公式有些复杂,请大神帮忙,必有重谢
展开
 我来答
鲜美还清湛灬白桦N
推荐于2016-12-05 · TA获得超过621个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:528万
展开全部
Update 表 Set
B=Case When 300-d*e>0 Then
Case When (300-d*e)/d>=15 Then 15 else (300-d*e)/d End+
Case When 50*d>=6 Then 6 else 50*d End+
Case When 26*e>=12 Then 12 Else 26*e End
Else
Case When (300-d*e)/d>=15 Then 15 else (300-d*e)/d End+
Case When 26*e>=12 Then 12 Else 26*e End
End
,
A=Case When 300-d*e>0 Then b*e+50 Else 25 End,
C=Case When 300-d*e>0 Then
Case When (300-d*e)/e>= 29 Then 29 else (300-d*e)/e End
Else
50-b*e
End
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式