2020-09-13 01:41发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
我的任务是根据2个主键字段和4个辅助字段来总结一个字段。
例如 1 aa bc bb'X'
1 aa bc bd''
1个aa bc bb'X'
期望的o/p是
1 aa bc bb 2 0
1 aa bc bd 0 1
根据2个主字段和4个辅助字段精确地计算非空字段和空字段。
您好
将此作为模板
类型:开始于ty_value, ID TYPE I, val1 TYPE char10, val2 TYPE char10, val3 TYPE char10, val4 TYPE char10, END OF ty_value, ty_values带有DEFAULT KEY的ty_value类型标准表。 类型:开始于ty_value_count。 包括TYPE ty_value。 类型:空的类型i, 填满TYPE I, END OF ty_value_count, ty_value_counts带DEFAULT KEY的ty_value_count类型标准表。 数据:value_counts类型ty_value_counts。 DATA(值)= VALUE ty_values((id = 1 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true) (id = 1 val1 ='aa'val2 ='bc'val3 ='bd'val4 = abap_false) (id = 1 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true) (id = 1 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true) (id = 1 val1 ='aa'val2 ='bc'val3 ='bd'val4 = abap_false) (id = 1 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true) (id = 2 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true) (id = 2 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_false) (id = 2 val1 ='aa'val2 ='bc'val3 ='bd'val4 = abap_false) (id = 2 val1 ='aa'val2 ='bc'val3 ='bb'val4 = abap_true))。 *更经典的方式-大多数程序员更容易理解 循环AT值分配字段符号()GROUP BY(id = -id val1 = -val1 val2 = -val2 val3 = -val3)。 在组<值>分配字段符号(<组>)中循环。 如果line_exists(value_counts [id = -id val1 = -val1 val2 = -val2 val3 = -val3])。 ASSIGN value_counts [id = <组> -id val1 = <组> -val1 val2 = <组> -val2 val3 = <组> -val3]到FIELD-SYMBOL()。 其他。 在value_counts ASSIGNING 上附加对应的#( val4除外)。 万一。 如果 -val4是INITIAL。 <值计数>-空= <值计数>-空+ 1。 其他。 <值计数>填充= <值计数>填充+ 1。 万一。 结局。 结局。 *我的首选解决方案 数据(rd_value_counts)=值ty_value_counts(对于的GROUPS 中的值GROUP BY(id = -id val1 = -val1 val2 = -val2 val3 = -val3 ) (id = -id val1 = -val1 val2 = -val2 val3 = -val3 空=减少#(INIT cnt = 0 FOR 在组中(val4是初始值) 下一个cnt = cnt +1) 填充=减少#(INIT cnt = 0 FOR 在组中(val4不是初始的) NEXT cnt = cnt + 1)))。
致谢
多米
感谢多米,
我明白了你的逻辑。
此致
Raj。
最多设置5个标签!
您好
将此作为模板
致谢
多米
感谢多米,
我明白了你的逻辑。
此致
Raj。
一周热门 更多>