この質問で説明されているのと同じクエリから作業しています: Diagnosis in One Horizontal Row。診断データが水平になり、アクティブな認知症の人を除外したいと考えています (診断ステータスは診断ごとに示されます)。1 人あたりの診断の最大数は 50 であるため、18 の異なる ICD9 コード (認知症を示す) のそれぞれについて、50 の ICD9 コード フィールドのそれぞれを検索する必要があります。18 個のコードのそれぞれを @ICD9Code49 - @ICD9Code66 として宣言しましたが、これらをデータ セットから除外する方法がわかりません。私は以下を試しました(ProblemStatusは診断ステータスです):
SELECT * FROM Diagnosis
WHERE
(
([ProblemStatus_1] = @ProblemStatus AND (ICD9Code_1 <> @ICD9Code49 OR ICD9Code_1 <> @ICD9Code50 OR ICD9Code_1 <> @ICD9Code51 OR ICD9Code_1 <> @ICD9Code52 OR ICD9Code_1 <> @ICD9Code53 OR ICD9Code_1 <> @ICD9Code54 OR ICD9Code_1 <> @ICD9Code55 OR ICD9Code_1 <> @ICD9Code56 OR ICD9Code_1 <> @ICD9Code57 OR ICD9Code_1 <> @ICD9Code58 OR ICD9Code_1 <> @ICD9Code59 OR ICD9Code_1 <> @ICD9Code60 OR ICD9Code_1 <> @ICD9Code61 OR ICD9Code_1 <> @ICD9Code62 OR ICD9Code_1 <> @ICD9Code63 OR ICD9Code_1 <> @ICD9Code64 OR ICD9Code_1 <> @ICD9Code65 OR ICD9Code_1 <> @ICD9Code66))
AND ([ProblemStatus_2] = @ProblemStatus AND (ICD9Code_2 <> @ICD9Code49 OR ICD9Code_2 <> @ICD9Code50 OR ICD9Code_2 <> @ICD9Code51 OR ICD9Code_2 <> @ICD9Code52 OR ICD9Code_2 <> @ICD9Code53 OR ICD9Code_2 <> @ICD9Code54 OR ICD9Code_2 <> @ICD9Code55 OR ICD9Code_2 <> @ICD9Code56 OR ICD9Code_2 <> @ICD9Code57 OR ICD9Code_2 <> @ICD9Code58 OR ICD9Code_2 <> @ICD9Code59 OR ICD9Code_2 <> @ICD9Code60 OR ICD9Code_2 <> @ICD9Code61 OR ICD9Code_2 <> @ICD9Code62 OR ICD9Code_2 <> @ICD9Code63 OR ICD9Code_2 <> @ICD9Code64 OR ICD9Code_2 <> @ICD9Code65 OR ICD9Code_2 <> @ICD9Code66))
AND ([ProblemStatus_3] = @ProblemStatus AND (ICD9Code_3 <> @ICD9Code49 OR ICD9Code_3 <> @ICD9Code50 OR ICD9Code_3 <> @ICD9Code51 OR ICD9Code_3 <> @ICD9Code52 OR ICD9Code_3 <> @ICD9Code53 OR ICD9Code_3 <> @ICD9Code54 OR ICD9Code_3 <> @ICD9Code55 OR ICD9Code_3 <> @ICD9Code56 OR ICD9Code_3 <> @ICD9Code57 OR ICD9Code_3 <> @ICD9Code58 OR ICD9Code_3 <> @ICD9Code59 OR ICD9Code_3 <> @ICD9Code60 OR ICD9Code_3 <> @ICD9Code61 OR ICD9Code_3 <> @ICD9Code62 OR ICD9Code_3 <> @ICD9Code63 OR ICD9Code_3 <> @ICD9Code64 OR ICD9Code_3 <> @ICD9Code65 OR ICD9Code_3 <> @ICD9Code66))
)
AND と OR のさまざまな組み合わせを試しましたが、うまくいかないようです。