私は修正方法がわからない問題が出てきました。私のストアドプロシージャでは、DATEDIFF()関数を使用して日付差のintを返します。私のロジックでは、負の値を与えているDATEDIFF()の戻り値から値を減算しています。これは、このロジックがレートを調整するためのものであるため、設計によるものです。t-sqlの場合にエイリアスを選択する
私の問題は、ケースステートメントを使用していますが、エイリアスを使用しているため、列を選択できません。
DATEDIFF(d, vso.pod_ata, ISNULL(cncr.cntr_date3, GETUTCDATE())) - 14 AS dem_days, -- Date difference to work out Demurrage days
DATEDIFF(d, cncr.dc_ata, ISNULL(cncr.empty_return_dt, GETUTCDATE())) - 21 AS det_days,
CASE WHEN dem_days <= 0 THEN 0 END AS 'test1',
CASE WHEN det_days <= 0 THEN 0 END AS 'test2',
エラーメッセージは次のとおりです:私は何を目指すことは値が負の場合、私はより多くの情報については、以下の私のコードを参照してください。それが0
として表示するいくつかの追加のロジックを記述することです
無効な列名 'dem_days'です。 無効な列名 'det_days'です。
これを解決する最適な解決策は何ですか?
これは完全に機能しました。私はゼロよりも小さくない場合に値を評価しないelse条件を追加しました。ゼロまたはゼロより大きい数値が表示されますが、同時にレートがそのまま維持されます。ありがとうございます!! –