私は 'WHERE'句の中のcase文について他のいくつかのQ &を読んだことがありますが、本当に使用方法を理解できません。私はコードのスニペットの下に投稿します。私は、ケースステートメントの使い方に関する基本的な原則を知らないと思います。そのため、コードはコンパイル/実行されません。私はどんな助けにも感謝します。私は上記の持っているかを説明するにはi.LastShpdのDESCSQLのケースステートメント:Where Where Clause
によって
where i.status IN ('CR','L','O')
and i.FGCs > 0
and i.LastShpd > CAST(CONVERT(CHAR(11),DATEADD(DAY,-180,GETDATE()),113) AS datetime)
and (Case
When n.OnOrder IN ('0', '')
Then i.OnOrder = 0 or i.LastShpd < CAST(CONVERT(CHAR(11),DATEADD(DAY,-21,GETDATE()),113) AS datetime)))
End)
注文、私はすでに声明「から」「SELECT」と適切なを得ました。今私は、それらの表示された変数(ecx LastShpd)に基づいて結果をフィルタリングしています。 n.OnOrder = 0の場合、i.OnOrder = 0の行またはi.LastShpdが21日以上経過している行のみを保持したいと考えています。私はあなたがこのためにケースを必要としないと思う
最後に論理を追加する必要があります。ケース n.OnOrder IN( '0'、 '') i.OnOrder = 0またはi.LastShpd
damola