我有两个表 custKinds CustKindDetail
表 custKinds
ckKindCode ckKindName ckWaterPrice ckWRRatio
001 生活用水 1.17 100
002 商业用水 1.23 100
表 CustKindDetail
cdMeterID cdKindCode cdWaterPrice cdWRRatio
100 001 1.17 70
100 002 1.23 30
101 001 1.17 100
102 002 1.23 100
103 001 1.17 20
103 002 1.23 80
我想要的结果是 当表custKinds 的字段ckWRRatio(用水收费比例) 更新时
把表CustKindDetail中拥有一种用水性质的cdWRRatio字段同时更新(比如: 编号为 101 102),而有两种用水性质的cdWRRatio字段不更新(比如:编号 100 103 )
要求用一条更新语句(只要求更新CustKindDetail 表的就行) 在这条语句中不用 not in或者in
谢谢你的指教!
------解决方案--------------------
create table custKinds(ckKindCode varchar(10),ckKindName varchar(20),ckWaterPrice numeric(18,2),ckWRRatio int)
insert into custKinds
select '001 ', '生活用水 ',1.17,100
union all select '002 ', '商业用水 ',1.23,100
create table CustKindDetail(cdMeterID varchar(10),cdKindCode varchar(10),cdWaterPrice numeric(18,2),cdWRRatio int)
insert into CustKindDetail
select '100 ', '001 ',1.17,70
union all select '100 ', '002 ',1.23,30
union all select '101 ', '001 ',1.17,100
union all select '102 ', '002 ',1.23,100
union all select '103 ', '001 ',1.17,20
union all select '103 ', '002 ',1.23,80
update CustKindDetail
set cdWRRatio=b.ckWRRatio
from CustKindDetail a,custKinds b
where not exists(select 1 from CustKindDetail b where a.cdMeterID=b.cdMeterID and a.cdKindCode <> b.cdKindCode)