私のケースで何が間違っているのか教えてくれますか? :)SQL Server:where句でのケース
私は請求書と返済を選択しています。
エラー:
メッセージ4145、レベル15、状態1、行10
条件は、近くに '終了' が期待されているコンテキストで指定された非ブール型の式。
コード:
select
I.subject1, R.subject2
from
dbo.invoice I
left join
dbo.repayments R on I.subject1 = R.subject2
where
case
when R.subject2 is not null and R.remains_due > 0
then R.remains_due
when R.subject2 is not null and R.remains_due = 0
then I.remains_due
when R.subject2 is not null and R.due_date <= GETDATE()
then R.due_date
when R.subject2 is null and I.due_date <= GETDATE()
then I.due_date
end
一般に、WHERE句の 'case'式の代わりに' AND'/'OR'を使用することをお勧めします。 – jarlh
あなたのcase式は値を返します。これを何かと比較する必要があります。 – jarlh
"then"は私にとって重要なので、 "case"が必要です。 あなたが言ったことは比較ですか?それについてもっと教えていただけますか? – otesanek