当前位置: 代码迷 >> Sql Server >> 一条批量更新话语
  详细解决方案

一条批量更新话语

热度:1   发布时间:2016-04-24 23:54:06.0
一条批量更新语句
UPDATE Archive_MeterInfo am
SET am.IC_CardCount=tt.coutNum FROM  (
select b.meterid,b.coutNum,a.IC_cardcount-b.coutNum as aa from 
(select IC_cardcount,meterid from dbo.Archive_MeterInfo) a,
(select count(*) as coutNum,meterid from charge_ic where codeid_icbuytype=4  group by meterid )b
where a.meterid=b.meterid and a.IC_cardcount<>b.coutNum
)tt
where tt.meterid=am.MeterID

------解决方案--------------------
UPDATE Archive_MeterInfo 
SET am.IC_CardCount=tt.coutNum FROM  (
select b.meterid,b.coutNum,a.IC_cardcount-b.coutNum as aa from 
(select IC_cardcount,meterid from dbo.Archive_MeterInfo) a,
(select count(*) as coutNum,meterid from charge_ic where codeid_icbuytype=4  group by meterid )b
where a.meterid=b.meterid and a.IC_cardcount<>b.coutNum
)tt,
Archive_MeterInfo AS am
where tt.meterid=am.MeterID

------解决方案--------------------

UPDATE Archive_MeterInfo
SET IC_CardCount=tt.coutNum FROM  
(select b.meterid,b.coutNum,a.IC_cardcount-b.coutNum as aa from 
(select IC_cardcount,meterid from dbo.Archive_MeterInfo) a,
(select count(*) as coutNum,meterid from charge_ic where codeid_icbuytype=4  group by meterid )b
where a.meterid=b.meterid and a.IC_cardcount<>b.coutNum
)tt
where tt.meterid=Archive_MeterInfo.MeterID 
  相关解决方案