cwui 2025-03-11 11:34 采纳率: 43.3%
浏览 13
已结题

SAP HANA SQL 历史累计

img

如上图,求每个YM累积到上一年末的AMOUNT合计值。
比如: 202502上一年末 = 202412,那么202502的AMOUNT合计值 = 202412的AMOUNT + 202411的AMOUNT , 即230
。同理202501也是230。202412和202411的上一年末 = 202312 ,所以是0
SQL怎么写

  • 写回答

4条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-11 11:34
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    可以使用如下的SQL来解决这个问题:
    with recursive cte as (
        select ID, AMOUNT, YEAR, CAST(substr(YEAR, 1, 4) as integer) as YEAR_INT
        from your_table
        where substr(YEAR, 5, 2) = '12' 
        union all
        select t.ID, t.AMOUNT + c.AMOUNT, t.YEAR, c.YEAR_INT
        from your_table t
        join cte c on t.ID = c.ID and substr(t.YEAR,1,4) = CAST(c.YEAR_INT + 1 as string)
    )
    select ID, AMOUNT, YEAR
    from cte
    order by ID, YEAR;
    

    在这个SQL语句中,使用递归CTE (common table expression) 来不断累加上一年末的AMOUNT值。首先选出所有月份为"12"的记录作为起始点,然后依次向上递归计算。最后得到每个YM累积到上一年末的AMOUNT合计值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 修改了问题 3月11日
  • 创建了问题 3月11日