İki alanda (ContractState, TransID) temel alan eşleşen bir kayıt bulunmayan bir tabloda veri bulmak istiyorum. ÖrneğinSadece eşleşen kayıtları olmayan bir tablodaki verileri bulmak için SQL
, bu veri kümesi varsayalım (gerçekte, tüm veri setleri sadece birkaç dahil ediyorum, kayıtların yüzlerce içerir):
AccountNbr ContractState TransID Product
3335477 AL 80079 DPPO, DHMO
3335477 AL 80080 PPO
3335477 AR 80079 DPPO, DHMO
3335477 AR 80080 PPO
Bu 0 kayıtları dönmelidir, 2 kayıt oluşturduğu için AL için (her TransID için bir tane) ve AR için 2 kayıt. her bir durum için, sadece 1 TransID çünkü
AccountNbr ContractState TransID Product
3335477 DE 80079 DHMO
3335477 WA 80080 DHMO
:
AccountNbr ContractState TransID Product
3335477 AL 80079 DPPO, DHMO
3335477 AL 80080 PPO
3335477 DE 80079 DHMO
3335477 WA 80080 DHMO
sadece aşağıdaki veri kümesi geri istiyoruz:
Bununla birlikte, aşağıdaki veri seti verilmiştir.
Bu kodu vardır, ama aynı zamanda eşleşen verileri ile kayıtları içerir:
SELECT
'tblSQLContractState' as TableName,
TransID,
ContractState,
Product,
COUNT(*) AS [NumOfMessage]
FROM tblSQLContractState
WHERE TransID IN (80079, 80080)
GROUP BY
TransID,
ContractState,
Product
HAVING COUNT(*) = 1
Tüm 3 cevap güzeldi ve işe yaradı, ama ben Gordon'la gittim çünkü daha kolay düzenlenecek gibi görünüyordu ve 20 farklı tablo için benzer bir sorgu yapıyorum. Giriş için teşekkürler, hepiniz! –
O halde kabul et :) –