我正在使用SAP HANA并希望在循环内加入过程调用的输出结果,无论如何都要这样做吗?
类似于此:但问题是重复的属性名称
FOR i IN 1..:nYEARS DO
CALL FUTUREREVENUES (:i,resulttemp);
result = SELECT * FROM :result t1
INNER JOIN :resulttemp t2
ON t1.ID = t2.ID
END FOR;
答案 0 :(得分:0)
不,主要问题不是重复的属性名称; SAP HANA实际上允许在投影中,只要该属性是唯一可识别的。
在这里尝试做的不是任何静态类型的语言,例如SQL
。基本上,返回类型result
的结构取决于输入,即循环执行的频率。
这里需要的是动态SQL的一些方法,它可以在每次迭代时调整预计的列名。虽然这似乎是一种简单的方法,但事实恰恰相反。
result
数据的每个消费者都被迫接受来自此循环的表格,甚至不知道如何命名投影列。
难以处理并使解决方案很难重复使用。
另一种方法可能是拥有一个固定的输出表结构,比如5年预测(如果你甚至可以预测任何确定的东西),并且没有动态列名。
相反,你可以例如将列命名为FC+Year1
,FC+Year2
,...
这样,输出结构保持不变,而客户端应用程序必须做的就是根据基准年(输入到预测中)来匹配输出标签。