日期:2014-05-18  浏览次数:20557 次

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
*/