質問ばかりで恐れ入ります。
一時テーブルは元テーブルの部分的なレコードで、
追加・更新・削除を行うことがあります。
SQLで処理して元テーブルに戻そうとするのに、
INSERT・ UPDATEは上手くいくのですが
DELETEの書き方が出来ずにいます。
詳細は添付画像の通りです。
本来、どのようにSQLを記述したかを書くべきところですが、
あれこれ試しすぎて残しておりません。
記述が間違っている意味合いのメッセージが出るか、
何も起きないか、
変化が生じたのは画像のような失敗です。
SQLでは難しかったりするのでしょうか。
ご教授お願いいたします。
T_受講受付 の主キー設定を提示してください。
そのうまくいっているSQLを提示してください。
あと、一時テーブルへデータをエクスポートするときの抽出条件はどこでどのように設定してますか。
とりあえず画像ファイルからの想像ですが、
一時テーブル以外のレコードがすべて削除されているようですね。
データを一時テーブルへ転送するときに、元テーブルに何らかの抽出条件を設定しているはずです。
削除クエリにも、同じ抽出条件を設定しないと、そのような結果になりますね。
hatenaさま、返信ありがとうございます。
日が変わり脳みそがリセットされたら、解決いたしました。
>一時テーブルへデータをエクスポートするときの抽出条件はどこでどのように設定してますか。
抽出条件に関する「W.回数=T.回数」について、
DELETEのSQLでの記載箇所“どこで”を誤っておりました。
EXSITSの中でこねくり回してしまっておりました。
下記のとおり書いたらうまく動作しました。
DELETE FROM T_受講受付 AS T
WHERE W.回数=T.回数 and NOT EXSITS (SELECT * FROM W_受講受付 AS T WHERE W.申込者=T.申込者)
どうもお騒がせいたしました。
もう不要ではありますが、うまく動作している方のSQLは下記のとおりとしておりました。
(実際のテーブルのフィールドは多いのでstrとしています。)
UPDATE T
INNER JOIN W
ON T.回数=W.回数
SET & strフィールド &
WHERE T.回数= str抽出した回数
INSERT INTO T ( & strフィールド & )
SELECT & strフィールド &
FROM W
ありがとうございました。
今後ともよろしくお願いいたしますm(__)m