表
Tmp001(int1 int,int2 int);
int1 int2
---- ----
1 100
表
Tmp002(int1 int,int2 int);
int1 int2
---- ----
1 1
1 2
执行
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int2
得到
int1 int2
---- ----
1 99
,请问大家如何能够得到
int1 int2
---- ----
1 97
请不要使用先求和的形式,别的SQL 系统(如Oracle,sybase)中有无同样病况。
10 个解决方案
#1
关注
#2
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
你原来是不是写错了?
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int2
^^这里是不是应该是T2.int1?
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
你原来是不是写错了?
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int2
^^这里是不是应该是T2.int1?
#3
To Naiwer(海阔天空),是描述语句写错了,但是多表关联一对多的更新问题没有错。
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int1
^^这里是T2.int1!
大家看看怎末解决,当然对于这个简单的例子,求和后肯定是可以解决的,但是换种复杂的情况,例如还有别的字段参与运算,处理起来简直是没有办法了。
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int1
^^这里是T2.int1!
大家看看怎末解决,当然对于这个简单的例子,求和后肯定是可以解决的,但是换种复杂的情况,例如还有别的字段参与运算,处理起来简直是没有办法了。
#4
学习。
#5
大家关注一下吧
#6
沉底了
#7
啊啊啊啊啊
#8
试过这个语句没有:
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
我想只能用先求和的形式!
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
我想只能用先求和的形式!
#9
求解呀,不是我不想用求和,有时候不能用
#10
算了,我放弃了,谢谢大家的参与
#1
关注
#2
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
你原来是不是写错了?
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int2
^^这里是不是应该是T2.int1?
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
你原来是不是写错了?
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int2
^^这里是不是应该是T2.int1?
#3
To Naiwer(海阔天空),是描述语句写错了,但是多表关联一对多的更新问题没有错。
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int1
^^这里是T2.int1!
大家看看怎末解决,当然对于这个简单的例子,求和后肯定是可以解决的,但是换种复杂的情况,例如还有别的字段参与运算,处理起来简直是没有办法了。
Update T1
Set
T1.int2=T1.int2-T2.int2
from
Tmp001 T1,Tmp002 T2
Where T1.int1=T2.int1
^^这里是T2.int1!
大家看看怎末解决,当然对于这个简单的例子,求和后肯定是可以解决的,但是换种复杂的情况,例如还有别的字段参与运算,处理起来简直是没有办法了。
#4
学习。
#5
大家关注一下吧
#6
沉底了
#7
啊啊啊啊啊
#8
试过这个语句没有:
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
我想只能用先求和的形式!
Update T1
Set
T1.int2=int2-(select sum(int2) as int2 from T2 where T2.int1=T1.int1)
我想只能用先求和的形式!
#9
求解呀,不是我不想用求和,有时候不能用
#10
算了,我放弃了,谢谢大家的参与