• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLで分からないことがあります。)

SQLで仕入明細テーブルと出費詳細テーブルのデータを操作する方法

このQ&Aのポイント
  • 仕入明細テーブルで部数の合計値が2000以上のインデックス番号に対応する出費詳細テーブルの伝票NOのレコードを削除する方法について説明します。
  • sum(部数)が100以上のものを抽出するためにはselectでsum(部数)とする必要がありますが、インデックス番号を比較する場合はselectでsum(部数)を行わなくても可能です。
  • 伝票NOと同じインデックス番号を持つ仕入明細テーブルのレコードの部数を合計し、2000以上のインデックス番号に対応する出費詳細テーブルの伝票NOのレコードを削除します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

> ちなみにupdateやdeleteをした後にselectとすると処理が反映されたのが表示されますか? UPDATEやDELETEしたセッション(トランザクション)であれば処理が反映されたものが表示されます。 他のセッションからはCOMMIT後でないと反映されません。

hunt9999
質問者

お礼

ありがとう。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

副問合せの「SUM(部数)」は省略可能です。 delete from 出費詳細 where 伝票NO in ( select インデックス番号 from 仕入明細 group by インデックス番号 having sum(部数)>=100)

hunt9999
質問者

お礼

ありがとうございます。 ちなみにupdateやdeleteをした後にselectとすると処理が反映されたのが表示されますか? それともcommitした後にselectしないと処理後のデータ見れませんか?