SQL Server
Microsoft リレーショナル データベース管理分析システムのファミリで、電子商取引、基幹業務、データ ウェアハウジングなどのソリューションで使用されています。
40 件の質問
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
いつもお世話になっております。
SQL文の書き方で教えていただけるとありがたいです。
テーブル1
年月 日 店舗 売上数量 売上金額
202409 10 001 5 500
202409 11 002 5 450
テーブル2
年月 日 店舗 処理日
202409 10 001 20240903
202409 11 002 20240904
この2つのテーブルがあった時に
テーブル1のデータ(年月:202409 日:10 店舗:001)を
20240903日に処理した時にテーブル1から削除するにはどのようなSQLを書けばうまく行きますか?
SELECT文だと
select *
from テーブル1
inner join テーブル2
on テーブル1.年月 = テーブル2.年月
and テーブル1.日 = テーブル2.日
and テーブル1.店舗 = テーブル2.店舗
where convert(char,getdate(),112) = テーブル2.処理日
とSQLを書いていますが、この条件に見合うデータを削除するにはどうSQLを
記述すればいいでしょうか?
連結したテーブルの条件で抽出されたデータを削除する方法が良く分からず
ご教授いただけると非常にありがたいです。
よろしくお願いします。
こんな
--SELECT * FROM [テーブル1];
DELETE FROM [dbo].[テーブル1]
WHERE EXISTS
(SELECT *
FROM [テーブル2] as T2
WHERE ([テーブル1].年月=T2.年月) AND ([テーブル1].日=T2.日) AND ([テーブル1].店舗=T2.店舗 )
AND T2.処理日='20240903') --convert(char,getdate(),112) ) --getdate()は現在日になるので
--SELECT * FROM [テーブル1];