在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
1楼-- · 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;

 

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

我希望对您有帮助,

能不能别闹
2楼-- · 2020-09-23 17:19

您好,Eralper,

感谢您的答复。

我面临的真正挑战是动态生成新的衡量指标。

如果我们更改计算视图xml并根据第2列中的不同值动态添加xml标签,请提出建议是否可以。

请提出建议。

感谢和问候,

Tarun

天桥码农
3楼-- · 2020-09-23 17:25

嗨,Tarun您可以通过两种方式实现所需的输出

  • 1。创建限制列
  • 2。创建计算列
请参见下面的所需解决方案

1。 创建受限列

或者您可以使用下面的语法创建计算列的第二种方法

您必须为B做同样的事情。

希望这会有所帮助

此致

Avinash Thakur

悻福寶寶
4楼-- · 2020-09-23 17:23

嗨Varun,

您找到任何解决方案了吗? 我也有类似的要求。

等待您的回复

感谢和问候

Avinash

一周热门 更多>