SQL CASE 句に and ステートメントを含めることは可能ですか? もしそうなら、あなたはそれをどのように書きますか?
つまり、次のようなものですか?:
CASE
When ((Column < 1) AND (Column2 > 0)) THEN column4 + 1
END as Column
私のコードは実行されますが、私が望むものを達成しません(負の数はありません):
CASE
WHEN (((Clean_Total_Time - ActivityTimeTotalMin) < 0) AND (ActivityTimeTotalMin > 0))
THEN (ABS(DATEDIFF(hh,Total_Time,ActivityTotalTime))-1)
END as hours
私のコードは機能し、本来あるべきことを達成しますが、負の数が許可されているため、必要ありません:
CASE
WHEN (Clean_Total_Time - ActivityTimeTotalMin) < 0
THEN (ABS(DATEDIFF(hh,Total_Time,ActivityTotalTime))-1)
END as hours
編集: この計算の目的は次のとおりです。
2 つの列を減算し、結果が負の場合は、それらの 2 つの列のいずれかから数値 1 を減算します。さらに、私の AND セクションは、その列の値が 0 の場合、列から 1 を減算しないことを示していました。その列にゼロ未満の数値を入れたくありません。
発生していない唯一のことは、列がゼロに等しい場合にキャッチされないことです。そのため、もともと 0 だったときは常にマイナス 1 になっています。