自己結合で更新を行うSybase SQLの正しい構文は何ですか? たとえば、以下の表 (#tmptbl) があるとします。
account | client |amount | date
-------------------------------------
ACT1 | CLIENTA | 12 |2010-12-30
ACT2 | CLIENTB | 5 |2010-12-30
ACT1 | CLIENTA | 17 |2010-12-31
ACT2 | CLIENTB | 6 |2010-12-31
2010 年 12 月 31 日の金額を 2010 年 12 月 30 日の金額で上書きしたいと考えています。
次のようなことを書きたいと思います。
update old
set old.amount = new.amount
from #tmptbl old, #tmptbl new
where
/*filter old*/
old.account = 'ACT1'
and old.date = '2010-12-30'
and old.client = 'CLIENTA'
/* self-join new and old*/
and old.account = new.account
and old.client = new.client
/* filter new */
and new.date = '2010-12-31'
しかし、Sybase が 'update <>' 句でエイリアスを受け入れるようには見えません。これを行う適切な方法は何ですか?
ありがとう!