数据库批量更新

使用update-set-values-where可以更新多条记录,但更新值是相同的。

使用update-set-from-where更新多条记录,更新值可以定制不同。

用法

update target
set target.c1=src.c1,...,target.cn=src.cn
from
(
select --准备好数据
) src
where target.p1=src.p1 --按target的p1更新

例子

update t_exportChargeMistakeRatio
set longMoney=lm,shortMoney=sm,mistakeTimes=mt,mistakePersons=mp
from(
	select station,sum(longerAmount)  lm , sum(shorterAmount) sm,count(shorterAmount) mt,count (distinct(jobNumber)) mp
	from t_importLongShortMoney
	where recordDate between '2009-11-1' and '2009-11-30'			 
	group by t_importLongShortMoney.station
)a
where t_exportChargeMistakeRatio.stationId=a.station

update t_exportChargeMistakeRatio
set chargeMistakeRatio=cmr
from (select stationId,(isnull(longMoney,0)+isnull(shortMoney,0))/receivableCash  cmr
	from t_exportChargeMistakeRatio
	where date='2009-11-1'
) a
where a.stationId = t_exportChargeMistakeRatio.stationId

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值