これはどうやって書けますか?異なるフィールドのケースステートメント
レコードYまたはNを保持するかどうかを判断するために、さまざまな条件のいくつかのフィールドを調べる必要があります。 (特定の基準が満たされていないレポートから一部のレコードを除外しようとしています)
この例では、ES、CQI、NAおよびCCのエイリアステーブルがあります。だから私は基本的に、これらのすべてがSD.CType値を含める
CASE
WHEN SD.CType = N'ALT' AND ES.SERVICE = N'Alerts' THEN 'N'
WHEN SD.CType = N'ALT' AND ES.SERVICE <> N'Alerts' THEN 'Y'
WHEN SD.CType <> N'ALT' AND ES.SERVICE <> N'Alerts' THEN 'Y'
WHEN SD.CType = 'BPY' AND CQI.PTYPE = 'BP' THEN 'Y'
WHEN SD.CType <> 'BPY' AND CQI.PTYPE = 'BP' THEN 'N'
WHEN SD.CType <> 'BPY' AND NA.BILL = 'Y' THEN 'Y'
WHEN SD.CType = 'BPY' AND NA.BILL = 'Y' THEN 'N'
WHEN SD.CType = 'LEN' AND CC.PTYPE <> 'CC' THEN 'Y'
WHEN SD.CType = 'LEN' AND CC.PTYPE = 'CC' THEN 'N'
ELSE 'Y'
END
AS Keep
のようなものを必要とし、その後、彼らは他の3つのフィールドの値と組み合わせます。これを行うにはVBでSELECT CASE文を書くことができましたが、SQLで実行するにはこの必要があります。
私はどんな提案もありがとうございます。
? CASE文をネストすることもできますが、これはそのままのように見えます。 – JNevill
ありがとうございますJNevil、それは動作するようですが、私はそれについて明らかに非効率的なものがあるかどうか、または私は読むのが簡単な他の構文を試す必要がある場合は私は思っていた。私はすべてのケースがこれで説明されているとは確信していません。 –