问题标签 [hana-sql-script]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
98 浏览

hana - 如何根据“时间维度”在计算视图中为每一天创建一个“历史”表

我有非常 HANA/SQLScript 指定的问题。我需要根据带有日期间隔的表以脚本计算视图的形式为每一天创建一个历史视图吗?

我尝试使用“_SYS_BI”。“M_TIME_DIMENSION”进行每个交叉连接,并且只使用函数。

根据我的经验,交叉连接是累积和的理想选择,但不适用于显示单个值。

HANA 不允许使用列作为表函数的输入参数。

标量函数也不能在计算视图中使用。我可以激活该视图,但无法从中读取数据。即使功能独立工作正常:

业务伙伴折扣表:

我想用来代替的功能:

我的目标是创建一个视图,根据最近的值显示每天的折扣值。它必须以脚本计算视图的形式加入到更复杂的销售报告视图中。

预期结果是在 BP 和文件日期加入它:

0 投票
1 回答
877 浏览

stored-procedures - 调用 SP 抛出“ABAP 对象和 DDIC 对象必须在 METHOD 语句中声明”

我在 HANA 中创建了一个存储过程,并尝试通过 AMDP 类调用它。

SP如下;

AMDP 类:

但是,由于出现以下错误,我无法激活上述课程。

“ATU.SF::TESTSPCALL”未知。ABAP 对象和 DDIC 对象必须在 METHOD 语句中声明。本地名称必须以“:”开头

任何的想法?

0 投票
0 回答
30 浏览

sql - 将窗口函数 SUM 限制为不低于零

我正在尝试建立一个累积库存函数,我试图为每种材料计算未来的库存。由于订单不平衡,我可能会遇到滚动总和可能低于零的情况。我想避免这些,将总和限制为零(避免变成负数),并在下一次积极的交易中取回

这适用于 SAP HANA,据我了解,它支持常规 CTE,但不支持常规 CTE。我能够得到一个标准的 SUM OVER 去。

上面显示了当前和预期结果的示例表

0 投票
1 回答
37 浏览

hana-sql-script - 有没有更好的方法在 SQL 下使用 Select 中的 Case 进行编码?

我的过程中有以下 sql,但是当我在 Select 中使用 Case 时,它​​给出了“单行查询返回多行”错误。所以我将查询拆分为多个选择,最后通过合并我上面创建的所有临时表来编写输出。

我使用了 Select 和 Case 但给出错误“单行查询返回多行”。

LT_TEMP1,2,3 是为每个级别构建的临时表。

当我在上面运行查询时,我得到“单行查询返回多行”错误。所以我通过加入 INTAB 将 3 个临时表分成一个级别,最后通过所有 3 个临时表的联合写入 OUTTAB。对于系统来说,这似乎是性能密集型的。

0 投票
2 回答
1924 浏览

sap - 在 BW 转换中使用 REPLACE_REGEXPR 会引发语法错误

我正在尝试实现一个例程来替换 BW 转换中的一些无效字符。但我不断收到语法错误。这是我当前的代码:

我不断收到以下错误:

谁能告诉我我在这里做错了什么?

0 投票
1 回答
266 浏览

sql - 执行 WHEN 为假的 THEN 子句

THEN当子句中使用 UDF 时,子句代码中会发生错误WHEN,尽管函数返回 false。

我希望输出为 0,但实际我得到一个错误。

0 投票
2 回答
274 浏览

abap - 每组数据集中的极值

我有一个用 AMDP 编写的 SQLScript 查询,它创建两个新列source_contracttarget_contract.

原始数据:

AMDP 视图中的数据: 在此处输入图像描述

我想忽略任何中间行(日期是决定顺序的标准)。有什么建议或想法吗?

我想过使用Group by来获取最大日期和最小日期,并在单独的消费视图中对这些条目使用联合,但如果我们正在使用group by,我们将无法获取其他条目。另一种可能性是按日期订购,但它在 CDS 中不可用。

0 投票
1 回答
421 浏览

datatable - 从 SLT 表中删除部分数据

我需要从 SLt 表的 VBFA 表中删除数据。我们需要删除 2017 年 10 月之前的数据。我们如何才能做到这一点,因为我们拥有的唯一提交日期是 MJAHR,它是材料文档年份和创建记录的 ERDAT 日期。

我们如何在 2017 年 10 月之前删除数据

0 投票
3 回答
69 浏览

sql - How to create an average per partitions containing a maximum of 5 time dependent members?

My goal is to select an average of exactly 5 records only if they meet the left join criteria to another table. Let's say we have table one (left) with records:

And we have table two (right) with records:

A result should return:

The criteria met should be: For each JOB from left table, try to find 5 latest but older unique Action_ID(s) for the same ID in the right table and calculate average for them. So in other words, dog has barked, we do not know what reward to give him and we try to count the average of the latest five rewards he got. If less than 5 found, do not return anything/put null, if more, discard the oldest ones.

The way I wanted to do it is like:

But then it would calculate for all the Action_ID(s) that match the criteria and not only the five latest ones. Could you please tell how to achieve expected results? I can use sub-tables and it does not have to be done in one SQL statement. Procedures are not allowed for this use case. Any input highly appreciated.

0 投票
2 回答
5377 浏览

sap - 空值输入参数过滤

当输入参数为空时,我想显示所有数据。

我可以在计算视图的过滤器表达式中使用以下代码。但是,当我在输入参数中传递一个值时,它不起作用。

请注意,$$IP_DE_CTUSER$$ 周围有单引号。

当我如下删除 $$ IP_DE_CTUSER $$ 周围的单引号时,传递的值被正确过滤,但是当参数留空时,它不起作用。

我究竟做错了什么?我怎样才能使它工作?

下面是我的测试数据:

计算视图:

输入参数

过滤器表达式

计算视图