まったく同じ形式のSQLテーブルが2つあり、1つは一時テーブルとして使用され、もう1つは静的テーブルとして使用されています。
現在、私のコードは静的テーブルをワイプし、一時テーブルからの新しいデータを毎回入力しますが、これは私が必要としているものではありません。2つのテーブルを比較するある種のSQL差分を作成しようとしています。これにより、一時テーブルにはないが静的テーブルにはあるレコードが削除され、一時テーブルにはあるが新しいレコードが追加されます。静的テーブルではありません。したがって、静的テーブルは、ワイプされて再書き込みされるのではなく、実行ごとにのみ更新されます。
したがって、一時テーブルにABC1、ABC2、ABC4があり、静的テーブルにABC1、ABC3、ABC4がある場合
私のSQLクエリは理想的にはABC1、ABC2、ABC4を返します
削除したい値と追加したい値を選択しているように見えるクエリが2つありますが、現在、削除したものを正しく機能させることができないため、クエリに不足しているものがあるかどうか疑問に思っています。
このクエリは、一時テーブルにはあるが静的テーブルにはないデータを挿入します。
Insert into [static table]
SELECT *
FROM [temp table]
EXCEPT
SELECT *
FROM [static table]
このクエリは、静的テーブルにはあるが一時テーブルにはないデータを削除する必要があります。
delete from [static table]
where not exists
(SELECT *
FROM [static table]
EXCEPT
SELECT *
FROM [temp table] )
誰かが私のクエリの問題が何であるか、またはこのタスクを実行するためのより良い方法があるかどうかを提案できますか?ありがとう