【问题标题】:Conditional running total across columns in SQLSQL中跨列的条件运行总计
【发布时间】:2023-04-04 02:13:01
【问题描述】:

我有这些数据:

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

如何使用 SQL Server 跨列进行滚动总计,以使第 3 天的期末余额(实际数据可以扩展到第 30 天)为 0?

每日余额由前一天余额+当日赚取+当日消费确定,如果三者之和小于0,则余额为0。

【问题讨论】:

    标签: sql sql-server tsql cumulative-sum


    【解决方案1】:

    我会计算(并保留)您的总列。然后,您可以简单地将列相加并将它们包装在一个 CASE 中,如果小于零则设置为 0。我会使用这样的东西(在需要时使用 ISNULL)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      相关资源
      最近更新 更多