日期:2014-05-19  浏览次数:20394 次

再求一SQL語句,我都暈了。。
現在有T1(tid,tdate,tmoney)和T2(sid,sdate,edate)兩張表,結構如下
表T1                                                       |       表T2
tid         tdate               tmoney             |       sid           sdate               edate
001       2007/07/01       100                   |       001       2007/07/01       2007/07/01
001       2007/07/02       80                     |       001       2007/07/05       2007/07/06
..           ..                     ..                     |       ..             ..                         ..
002       2007/07/01       75                     |       002       2007/07/08       2007/07/10
002       2007/07/02       25                     |       003       2007/07/02       2007/07/05
..           ..                     ..                     |       ..             ..                         ..

現在我想修改表T1的tmoney字段
條件是T1表中的tid要等於T2表中的sid,並且T1表中的tdate要在T2表的sdate和edate之間.請問應該如何寫成SQL詞句.
先前的
Update   T1   Set   smoney   =   要修改的值
From   T1   ,   T2   Where   T1.tid   =   T2.sid   And   T1.tdate   Between   T2.bdate   And   T2.edate
好像不行。無法判斷T2表中的多條同sid數據。
請教應該如何做?謝謝!

------解决方案--------------------
Update T1 Set smoney = 要修改的值
From T1
Where exists (
select 1 from T2
where T1.tid = T2.sid
And T1.tdate Between T2.bdate And T2.edate
)