• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インサート文での条件の指定について)

インサート文での条件の指定について

このQ&Aのポイント
  • SQL初心者の方がストアド内のインサート文で条件を指定する方法について質問されています。具体的には、売上台帳テーブルにT受信データの受注Noがない行のみをインサートさせたいという要件があるようです。
  • 質問者は、条件をどのように書けば良いかわからず困っているようです。ご親切な方からのアドバイスを求めています。
  • 質問文章はインサート文の例も示されており、条件の指定に関する具体的なサンプルが求められています。

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

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

insert into 売上台帳 (支店コード,受注No,伝票No,品番,品名,数量,オーダー宛先,売上日, 住所,電話番号,更新日時,更新者) select支店コード,受注No,伝票No,品番,品名,数量,オーダー宛先,売上日, 住所,電話番号,更新日時,更新者 from T受信データ where 支店コード = 002 and not exists ( select 1 from 売上台帳 U where T受信データ.受注No=U.受注No) って書けませんでしたっけ。

その他の回答 (3)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

MERGE文を使って、NOT MATCHでINSERTして、MATCHで何もしない。

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

「売上台帳テーブルにT受信データの受注Noがない行」という条件は EXIST 句を使っても表現できますね。 例) ------------------------------------- -- from 句より前は元と同じ from T受信データ A where 支店コード = 002 AND NOT EXISTS(SELECT * FROM 売上台帳 B WHERE A.受注No = B.受注No); -----------------------------------------

miruchoko
質問者

お礼

大変参考になりました。 有難うございました。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>from T受信データ >where 支店コード = 002 from T受信データ A left outer join 売上台帳 B on A.受注No=B.受注No where A.支店コード='002' AND B.受注No IS NULL 支店コードは文字列ではないですか? 文字列なら引用符(アポストロフィ)で囲む必要が あります。また、受注NoがNullのデータは無いと 仮定しています。正確を期するなら、下記のように 主キー項目を使います。 B.主キー IS NULL

関連するQ&A