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
公式有些复杂,请大神帮忙,必有重谢 展开
先判断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
公式有些复杂,请大神帮忙,必有重谢 展开
1个回答
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询