2017-07-29 6 views
0

私は今、スコアが可変数によって削減されるように、これを変更したい1テーブル内のカラムの値を減らすことはできますが、ゼロ未満にすることはできません。

db2.Execute("UPDATE Score " + 

"SET EnglishCorrect = CASE WHEN EnglishCorrect > 0 THEN (EnglishCorrect -1) ELSE 0 END, " + 
"KanaCorrect = CASE WHEN KanaCorrect > 0 THEN (KanaCorrect -1) ELSE 0 END, " + 
"RomajiCorrect = CASE WHEN RomajiCorrect > 0 THEN (RomajiCorrect -1) ELSE 0 END, " + 
"KanjiCorrect = CASE WHEN KanjiCorrect > 0 THEN (KanjiCorrect -1) ELSE 0 END"); 

によってスコアを減少させ、このSQLを持っています。この数値は、ptsというC#の整数に格納されます。

だから私は-1

"- " + pts + ")"に変更されますしています。しかしEnglishCorrect、KanaCorrect、RomajiCorrectとKanjiCorrectの値がゼロより小さくすることはできませんように私は問題を抱えています。

誰かが、どのようにしてポイントを0に減らし、それ以下に減らすことができるかを提案することができます。

EnglishCorrectは5とPTSであれば、たとえば6、私はEnglishCorrectは0

答えて

1
"SET EnglishCorrect = CASE WHEN (EnglishCorrect -pts)>= 0 THEN (EnglishCorrect -pts) ELSE 0 END, " + 
    "KanaCorrect = CASE WHEN KanaCorrect -pts >= 0 THEN (KanaCorrect -pts) ELSE 0 END, " + 
    "RomajiCorrect = CASE WHEN RomajiCorrect-pts >= 0 THEN (RomajiCorrect -pts) ELSE 0 END, " + 
    "KanjiCorrect = CASE WHEN KanjiCorrect-pts >= 0 THEN (KanjiCorrect -pts) ELSE 0 END"); 

に変更したいされたが、これがお役に立てば幸いです。

+0

ありがとうございます、私はこれを試し、正しいと答えを更新します。 –

関連する問題