读书人

更新有关问题求SQL

发布时间: 2012-04-12 15:46:35 作者: rapoo

更新问题求SQL
idgrpa
1A100
2A100
3A
4B20
5B
6C50
7C
8C
9C50
10D
11D60
12D
13E300
14E300
15E300


有这样一个表,id为主键grp为分组号,对于每个分组a列都应该有相同的值,但是现在有一些组中a列的值缺失了,需要参照已有的数据更新该表,填充a列的值,以下为要求的结果
idgrpa
1A100
2A100
3A100
4B20
5B20
6C50
7C50
8C50
9C50
10D60
11D60
12D60
13E300
14E300
15E300



[解决办法]
楼主结贴率老NB了

SQL code
 create table tb(    id    int,    grp nvarchar(2),    a    int)insert into tb values(1,'A',100)insert into tb values(2,'A',100)insert into tb values(3,'A',null)insert into tb values(4,'B',20)insert into tb values(5,'B',null)insert into tb values(6,'C',50)insert into tb values(7,'C',null)insert into tb values(8,'C',null)insert into tb values(9,'C',50)insert into tb values(10,'D',null)insert into tb values(11,'D',60)insert into tb values(12,'D',null)insert into tb values(13,'E',300)insert into tb values(14,'E',300)insert into tb values(15,'E',300)update t1 set t1.a = t2.afrom tb t1,tb t2where t1.grp = t2.grp and isnull(t2.a,0) <> 0select * from tb/*id,grp,a1,A,1002,A,1003,A,1004,B,205,B,206,C,507,C,508,C,509,C,5010,D,6011,D,6012,D,6013,E,30014,E,30015,E,300(15 行受影响)*/ 

读书人网 >SQL Server

热点推荐