• 締切済み

自分自身のテーブルを参照して更新

ORACLEで簡単にできたのがSQLServerで上手くできなくて困っています。 下のようなSQLです。SQLServerでUPDATE時に別名を付けようとすると エラーになってしまいます。良いSQLをご教授頂ければ、と思います。 update emp e set sal=  (select max(ee.sal) from emp ee where e.deptno=ee.deptno)

みんなの回答

回答No.1

このUPDATE文の意味を説明できますか? 相関名eとeeを使っていますが、列deptnoは更新される訳ではない。 UPDATEでは条件指定もなく、全件更新。 やりたいことは何でしょうか? それが分かれば、代替手段も提案できるかも知れません。 特定のRDBMSの構文を示されただけでは、両方のRDBMSに精通している人にしか、回答できない場合もあります。

kenken_pa
質問者

お礼

まさに上記SQLの処理をSQLServerで実行したいのですが…。 >列deptnoは更新される訳ではない。 >UPDATEでは条件指定もなく、全件更新。 もちろんです。それはこのSQLの意図とは全く関係ありません。 やりたいことを説明するために、実際にORACLEで動作する SQLを提示しました。「Oracleも理解できるかた限定」と したほうが良かったかも知れないですね。 このサイトは知っている人が知っていることを教えてくれる、 という趣旨かと思っていたもので…。大変失礼しました。

すると、全ての回答が全文表示されます。