在HANA计算视图中动态生成列

2020-09-23 16:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我们需要在计算视图中动...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我们需要在计算视图中动态创建列。

假设我有一个calculatioView,它将数据公开为

Col1 Col2 Measure1

ID1 A 10

ID2 B 20

ID3 A 30

我们希望输出为

Col1 Col2测量1 A B

ID1 A 10 10 0

ID2 B 20 0 20

ID3 A 30 30 0。

并且Col2中的值不固定。 Col2中所有不同的值都需要在列中进行转换。

您能建议一种方法吗?

还建议更改使用计算视图生成的xml。 如果我们通过使用JAVA代码更改生成的xml在计算视图中创建计算列。

保证在即将发布的HANA版本中xml结构的语义不会改变。

请提出建议。

感谢和问候,

塔伦(Tarun)

4条回答
暮风yp
2020-09-23 17:16

你好塔伦,

您实际上想要实现的是创建动态SQL Pivot查询。 作为数据库程序员,我可以在SAP HANA数据库以及其他数据库上实现此类解决方案。

如果它不是动态的,则可以简单地实现 HANA数据库上的SQL Pivot 通过在其他SELECT字段上使用CASE语句。

如果没有动态查询的要求,那么下面的动态SQL脚本将最终准备一个可以准备的SQL语句。

以下查询将显示所需的输出,但是实际上我们需要在本机HANA程序上使用AMDP。 我很确定我们不能仅通过使用视图来实现此解决方案

声明sqlstr nvarchar(4000);
 声明sqldyn nvarchar(4000);

 与CTE为(
 从v_pivot1选择不同的Col2
 )
 选择
     string_agg('如果Col2 ='''|| Col2 ||'''的情况,则Measure1否则0结尾为'|| Col2 ||'',',')
     进入sqldyn
 来自cte;

 sqlstr:='选择
     Col1,
     第2组,
     Measure1,'||  sqldyn ||  '
 来自v_pivot1;
 ';

 立即执行:sqlstr;

 

产生的输出如以下屏幕截图所示

我希望对您有帮助,

一周热门 更多>