200分求教一个更新语句(有点复杂,是否要用游标呢?)
表结构如下:
编号 vip号 客户经理 收入
001 0083 A 1000
002 0083 B 200
003 0083 C 1000
004 0083 A 2000
005 0093 D 100
现在我要更新这个表中同一个vip号的客户经理只有1个,规则是
如果1个vip号中有多数编号为一个客户经理,则该vip号就归这个客户经理,比如例表中0083这个vip号更新后的客户经理是A;
附加情况: 如果1个vip号有2个编号,2个客户经理,则根据编号的收入进行划分,客户经理更新为收入大的那一个。
另外的100分,我另开一帖给分,高手帮忙啊。
------解决方案--------------------编号 vip号 客户经理 收入
001 0083 A 1000
002 0083 B 200
003 0083 C 1000
004 0083 A 2000
005 0093 D 100
006 0093 E 200
如上数据是否更新 001,004,006这三行数据?
------解决方案--------------------你要得到的結果是怎樣的?
------解决方案--------------------declare @t table(编号 varchar(6),vip号 varchar(6),客户经理 varchar(6),收入 int)
insert into @t select '001 ', '0083 ', 'A ',1000
insert into @t select '002 ', '0083 ', 'B ',200
insert into @t select '003 ', '0083 ', 'C ',1000
insert into @t select '004 ', '0083 ', 'A ',2000
insert into @t select '005 ', '0093 ', 'D ',100
update t
set
客户经理=(select top 1 客户经理 from @t where vip号=t.vip号 order by 收入 desc)
from
@t t
select * from @t
/*
编号 vip号 客户经理 收入
------ ------ -------- -----------
001 0083 A 1000
002 0083 A 200
003 0083 A 1000
004 0083 A 2000
005 0093 D 100
*/