- 爱易网页
-
MSSQL教程
- 还是一个update语句,请各位达人看一下!解决办法
日期:2014-05-18 浏览次数:20595 次
还是一个update语句,请各位达人看一下!
表t1
id pid aa data1 data2 data3
1 1 1 1 2 3
2 1 2 1 2 3
3 1 3 1 2 3
4 1 4 1 2 3
5 2 1 1 2 3
6 2 2 1 2 3
7 2 3 1 2 3
8 2 4 1 2 3
9 3 1 1 2 3
10 3 2 1 2 3
11 3 3 1 2 3
12 3 4 1 2 3
13 4 1 1 2 3
14 4 2 1 2 3
15 4 3 1 2 3
16 4 4 1 2 3
我想用一个update语句实现表中的相同pid的
aa为4的data1=aa为3的data1+aa为2的data1
请问这个语句怎么写?
------解决方案--------------------
表t1
id pid aa data1 data2 data3
1 1 1 1 2 3
我想用一个update语句实现表中的相同pid的
aa为4的data1=aa为3的data1+aa为2的data1
请问这个语句怎么写?
-------------------------
update 表t1 set data1=X
from t1 a inner join t1 b on (a.pid=b.pid)
where a.aa=4 and data1=3 and aa=3
这是个思路,不过你表达的太不明白了.
------解决方案--------------------
update t1
set data1=
(select data1 from t1 b where a.pid=b.pid and b.aa=2)+
(select data1 from t1 c where a.pid=c.pid and c.aa=3)
from t1 a
where aa=4
-- result
1 1 1 1 2 3
2 1 2 1 2 3
3 1 3 1 2 3