SQL Server 2005でフィルタ処理を実行しようとしています。別のSQLサーバーに表示される1つのテーブルの行をフィルタする
例。 CurrentとRejectの2つのテーブルがあるとしましょう。
Current = 1, 2, 3, 4, 5, 1, 2
Reject = 2, 3, 4
Current \ Reject = 1, 2, 5
ご覧のとおり、2つのテーブルは値を共有しています。基本的には、それらの共有された値を減算して新しいテーブルに配置したいだけです。
これは私が試したものですが、動作しませんでした。 (Aは一致する列です)。
select * from Current left join
Reject on csrp.a = rp.a
group by Current.a, Reject.a
having count(Current.a) > count(Reject.a)
以下の点に注意してください。要素2は削除されていなくても、削除されました。
マーティン・スミスの答えは、このような場合のために働いていました!
EDIT
[OK]を、それでは、もう少しそれを複雑にしてみましょう。前回と全く同じ状況があるとしましょう。今回は、1つではなく3つの列に合わせる必要があります。
Current = (1, 2, 3), (2, 3, 4), (2, 3, 4), (4, 5, 6), (7, 8, 9), (1, 2, 3)
Reject = (2, 3, 4), (4, 5, 6), (7, 8, 9)
Current \ Reject = (1, 2, 3), (2, 3, 4)
はい、それは正しいです。要素2はCurrentに2回表示されますが、Rejectでは1回だけ表示されます。だから私は要素2を私の結果に表示したい。それは理にかなっていますか? –