実現したいこと
特定の商品番号と同じ内容で、一部分だけ変更したレコードを新規追加したいです。
前提に載せたテーブルで、商品番号がBB1のレコードのみ、店番号、客番号、数量をコピー、商品番号をCC1に変更した新規レコードを作りたいです。
別テーブル・別クエリを作る方法で実現はできましたが、クエリかAccessSQL一回で追加できたらと思いました。
前提
使うテーブルは以下のような内容です。
Access
1ID|店番号|客番号|商品番号|数量| 21 |011 | 001 | BB1 | 1 | 32 |011 | 002 | AA1 | 2 | 43 |011 | 003 | BB1 | 2 |
主キーはIDでオートナンバー型。
店番号は全行共通、数量以外の店番号、客番号、商品番号は短いテキスト型です。
希望完成テーブル
Access
1ID|店番号|客番号|商品番号|数量| 21 |011 | 001 | BB1 | 1 |(条件に一致) 32 |011 | 002 | AA1 | 2 | 43 |011 | 003 | BB1 | 2 |(条件に一致) 54 |011 | 001 | CC1 | 1 |←新規 65 |011 | 003 | CC1 | 2 |←新規
発生している問題・エラーメッセージ
クエリデザインで設定してSQLビューで修正したところ、以下のエラーが出ました。
最後にはもちろんセミコロンが入っているので、INSERT文の書き方が悪いのかとは思っています。
SQLステートメントの最後には、セミコロン(;)が必要です。
該当のソースコード
Access
1INSERT INTO テーブルA( 2 店番号, 3 客番号, 4 商品番号 5) 6VALUES( 7 店番号, 8 顧客コード, 9 "CC1" 10) 11SELECT 12 テーブルA.店番号, 13 テーブルA.客番号, 14 テーブルA.商品番号 15FROM 16 テーブルA 17WHERE 18 ( 19 (テーブルA.商品番号) = "BB1" 20 ) 21;
試したこと
各項目欄に括弧[]をつけたり、テーブルが一件しかないのでSELECT文からテーブル名を削除したり、テーブルに別名をつけてみたりしてみました。
エラーメッセージが変わるだけでできていません。
補足情報(FW/ツールのバージョンなど)
Access for Microsoft 365 MSO 32 ビット版
回答1件
あなたの回答
tips
プレビュー