H
huangjiahan
Unregistered / Unconfirmed
GUEST, unregistred user!
A表:
id date1 num1
001 20021101 110
001 20021001 100
B表:
id date2 num1
001 20021201 10
002 20021201 20
如果B表中满足以下2个条件:
1、B表的id和A表的id相同;
2、B表中的时间date2如果大于A表的date1的最大值,则B.num1=B.num1+A.num1
这样的sql语句该怎么写?
update A,B
set b.num1=b.num1+a.num1
where a.id=b.id and
B.date2>(select max(date1) from A)
奇怪的是,id=001的结果应该是120,但他却是220,我只要求是大于date1的最大值,
而不是大于date1的所有值?
id date1 num1
001 20021101 110
001 20021001 100
B表:
id date2 num1
001 20021201 10
002 20021201 20
如果B表中满足以下2个条件:
1、B表的id和A表的id相同;
2、B表中的时间date2如果大于A表的date1的最大值,则B.num1=B.num1+A.num1
这样的sql语句该怎么写?
update A,B
set b.num1=b.num1+a.num1
where a.id=b.id and
B.date2>(select max(date1) from A)
奇怪的是,id=001的结果应该是120,但他却是220,我只要求是大于date1的最大值,
而不是大于date1的所有值?