最近在做报表,作为数据库只会一个一个来update的我来说就有点艰难了。
今天想来说一下更新多个字段的语句:
update 表名b set 字段1=a.字段a, 字段2=a.字段b, 字段3=a.字段c... from (表名/select a, b, c, d ... from table [条件])as a
where b表的更新条件
比如我下面这条语句:想要把所有存货分类为方便面的计划订单量(iSOPlan)、订单量(iSellOrd)、发货量(iDispatch)汇总起来然后作为一条数据更新到发货表的方便面小计中
update fahuo set iSOPlan=v.iSOPlan, iSellOrd=v.iSellOrd, iDispatch=v.iDispatch from
(SELECT SUM(iSOPlan) as iSOPlan, SUM(iSellOrd) as iSellOrd, SUM(iDispatch) as iDispatch from fahuo where iInvClass = '%方便面%') as v
where iInvClass='方便面小计'
表结构如下:
产品分类 订单计划量 订单量 发货量
康师傅方便面 30 36 29
统一方便面 45 39 18
合味道方便面 90 150 99
方便面小计 165 225 146