2

私はこのデータを持っています:

Player  StartBalance    Day1Earned  Day1Spent   Day2Earned  Day2Spent   Day3Earned  Day3Spent
Alex      10              0           0           3           -5          3           -15

3 日目の最終残高 (実際のデータは 30 日目まで拡張可能) が 0 になるように、SQL Server を使用して列全体のローリング合計を実行するにはどうすればよいですか?

1 日の残高は、前日の残高 + 当日の獲得額 + 当日の消費額で決まり、3 つすべての合計が 0 未満の場合、残高は 0 になります。

4

1 に答える 1

0

合計列を計算(および永続化)します。次に、列を単純に追加して CASE にラップし、ゼロ未満の場合は 0 を設定します。このようなものを使用します (必要に応じて ISNULL を使用します)。

(CASE WHEN ([DAY1]+[DAY2])<(0) THEN (0) ELSE [DAY1]+[DAY2] END)
于 2011-03-17T10:47:14.040 に答える