Условный промежуточный итог по столбцам в SQL - PullRequest
2 голосов
/ 17 марта 2011

У меня есть эти данные:

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

Как составить промежуточную сумму по столбцу с использованием SQL Server, чтобы конечный баланс на 3-й день (фактические данные можно было расширить до 30-го дня) был бы равен 0?

Суточный баланс определяется балансом предыдущего дня + заработанным текущим днем ​​+ потраченным текущим днем, и если сумма всех 3 меньше 0, баланс будет равен 0.

1 Ответ

0 голосов
/ 17 марта 2011

Я бы вычислил ваш общий столбец (и сохранил его). Затем вы можете просто сложить столбцы и обернуть их в CASE, и если меньше нуля, установить 0. Я бы использовал что-то вроде этого (используя ISNULL, где это необходимо).

(CASE WHEN ([DAY1]+[DAY2])<(0) THEN (0) ELSE [DAY1]+[DAY2] END)
...