累计求和的八种姿势(Cumulative Sum/running total/YTD)

累计求和/运行时累计
场景:如下图所示,对AMOUNT字段 累计求和
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第1张图片
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第2张图片

  1. 限定列-方式a
在Query Designer创建12个限定列,第1个限定列限定1月,第2个限定列限定1-2月……第12个限定列限定1-12月
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第3张图片
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第4张图片
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第5张图片
  1. 限定列-方式b
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第6张图片
使用常数选择
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第7张图片
新建公式变量,使用替换路径,其它默认
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第8张图片
新建公式
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第9张图片
结果

  1. 限定列-Current Member
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第10张图片
使用CM变量限定日历年月
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第11张图片
结果

  1. 本地计算
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第12张图片
在Query Designer设置 Calculate single values As Cumulated标识
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第13张图片
结果
*对某些前端工具不起作用
  1. HANA计算视图-SQL
A)方式1: Window function
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第14张图片 累计求和的八种姿势(Cumulative Sum/running total/YTD)_第15张图片
B) 方式2:子查询
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第16张图片
  1. HANA计算视图-图形

累计求和的八种姿势(Cumulative Sum/running total/YTD)_第17张图片
新建计算视图ZCV_CALMONTH_CUMULATIVE
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第18张图片
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第19张图片
数据示例
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第20张图片
新建模型CV_RUN_TOTAL
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第21张图片
Proj_Month节点
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第22张图片
Proj_Data节点
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第23张图片
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第24张图片
Join_sum节点
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第25张图片
Union_1节点
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第26张图片
Aggregation节点
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第27张图片
整个计算视图
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第28张图片
结果集
  1. 动态计算列
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第29张图片
通过ABAP增强RSROA的方法COMPUTE_TABLE动态计算
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第30张图片
结果集(注意效率)
  1. 通过DTP将数据物化到模型
适用于大数据量情况
参考代码:
DATA : lt_rp2 TYPE _ty_t_tg_1 ,
ls_rp2 TYPE _ty_s_tg_1 ,
lv_cm2 TYPE /bi0/oicalmonth2 ,
lv_n TYPE /bi0/oicalmonth2 ,
lv_cq1 TYPE /bi0/oicalquart1 .
DATA ( lv_rec ) = lines ( RESULT_PACKAGE ) + 1 . "need to fill record field in result_package internal table.
LOOP AT RESULT_PACKAGE INTO ls_rp2 .
lv_cm2 = ls_rp2 - calmonth2 . " take calmonth2, e.g. 01 for Jan, 02 for Feb and so on
lv_n = 12 - lv_cm2 . " calc number of times the record should be multiplied in loop below
DO lv_n TIMES .
ls_rp2 - calmonth2 = lv_cm2 + sy - index . " calc corresponding month number
CONCATENATE ls_rp2 - calyear ls_rp2 - calmonth2 INTO ls_rp2 - calmonth . " ... and calmonth
lv_cq1 = ls_rp2 - calmonth2 DIV 4 + 1 . " calc corresponding quater number
ls_rp2 - calquart1 = lv_cq1 .
CONCATENATE ls_rp2 - calyear ls_rp2 - calquart1 INTO ls_rp2 - calquarter . "... adn calquarter
ls_rp2 - record = lv_rec .
ls_rp2-/bic/zrt = 'X' . "set field to sepatare rows with RT
APPEND ls_rp2 TO lt_rp2 .
lv_rec = lv_rec + 1 .
ENDDO .
ENDLOOP .
APPEND LINES OF lt_rp2[] TO RESULT_PACKAGE[] . "finally combine "in period"-dataset with RT-dataset.
累计求和的八种姿势(Cumulative Sum/running total/YTD)_第31张图片

你可能感兴趣的:(SAP,HANA,BW,SUM,BI)