- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLで分からないことがあります。)
SQLで仕入明細テーブルと出費詳細テーブルのデータを操作する方法
このQ&Aのポイント
- 仕入明細テーブルで部数の合計値が2000以上のインデックス番号に対応する出費詳細テーブルの伝票NOのレコードを削除する方法について説明します。
- sum(部数)が100以上のものを抽出するためにはselectでsum(部数)とする必要がありますが、インデックス番号を比較する場合はselectでsum(部数)を行わなくても可能です。
- 伝票NOと同じインデックス番号を持つ仕入明細テーブルのレコードの部数を合計し、2000以上のインデックス番号に対応する出費詳細テーブルの伝票NOのレコードを削除します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ちなみにupdateやdeleteをした後にselectとすると処理が反映されたのが表示されますか? UPDATEやDELETEしたセッション(トランザクション)であれば処理が反映されたものが表示されます。 他のセッションからはCOMMIT後でないと反映されません。
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
副問合せの「SUM(部数)」は省略可能です。 delete from 出費詳細 where 伝票NO in ( select インデックス番号 from 仕入明細 group by インデックス番号 having sum(部数)>=100)
質問者
お礼
ありがとうございます。 ちなみにupdateやdeleteをした後にselectとすると処理が反映されたのが表示されますか? それともcommitした後にselectしないと処理後のデータ見れませんか?
お礼
ありがとう。