2つのフィールド(ContractState、TransID)に基づいて一致するレコードがないテーブルでデータを検索したいとします。例えば一致するレコードがないテーブルのデータのみを検索するSQL
、(すべてのデータセットは、レコードの数百人が含まれている現実に、私はほんの数を含めています)、このデータセットを前提としています
AccountNbr ContractState TransID Product
3335477 AL 80079 DPPO, DHMO
3335477 AL 80080 PPO
3335477 AR 80079 DPPO, DHMO
3335477 AR 80080 PPO
2つのレコードがあるので、これは、0のレコードを返す必要がありますAL(各TransIDに1つ)とARに対して2つのレコードがあります。各状態のため、唯一の1 TRANSIDがあるため
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
:
ただし、次のデータセットを与えられました。
私はこのコードを持っているが、それはまた、データが一致するレコードが含まれています
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
3つの答えはすべていいですし、うまくいきましたが、私はGordonの編集した方がいいと思ったので、20の異なる表について同様のクエリを実行しています。入力のおかげで、皆さん! –
それを受け入れる:) –