私は比較的新しいSQL(Sql Serverを使用しています)です。私は、アカウント情報とさまざまなエラーコードを格納する10の列を持つテーブルを持っています。問題は、私がリストで提供するエラーコードの少なくとも1つがこれらの10の列のいずれかに存在する場合、レコードを削除する必要があることです。複数の列に存在する可能性のある値に基づいてレコードを削除する
たとえば、番号98と99がColumn1またはColumn2またはColumn3のいずれかに見つかった場合は、結果セットから除外します。
特に、誰かが自分のストアドプロシージャのロジックを私に移していますが、この問題を処理していると思われるコードは(明らかに何かが分からない限り)想定されていることをしません。コードは下にあり、where句にあります。
Select * From arcu.arcuaccountdetailed ad
Where
(Case
when ad.AccountWarningcode1 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode2 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode3 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode4 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode5 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode6 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode7 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode8 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode9 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode10 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode11 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode12 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode13 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode14 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode15 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode16 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode17 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode18 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode19 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
when ad.AccountWarningcode20 IN (98,99,2,29,30,21,10,11,50,53,97) then 1
Else 0 End) = 1
私は大いに感謝します。
これは '= 1'とは何でしょうか? –
完全なクエリを表示できますか?何が効いていないのですか? –
Grzegorz、率直に言って、このコード全体が全く意味をなしませんが、私の同僚はそうではないと主張しています。私はこの問題に正しくアプローチしたいと思います。 –