我很难解释我的必要性,所以我来描述一下情况。
场景:
产品a一次最大产量为125公斤。
操作员收到1027.5kg产品a的生产订单。
操作员必须计算他将要制造多少轮,并调整每轮的部件数量。
我们希望创建一个报告,其中这些计算已经完成,我们认为第一步是根据此场景的值返回如下内容:
轮数(kg)
1 125
2 125
三 125
4 125
5 125
6 125
7 125
8 125
9 27,5
之后,可以通过简单的操作重新计算组件。
问题是,我们想不出一种方法来获得期望的回报,我们也想不出一种不同的方法来实现上述报告。
我们所能做的就是得到除法的整数部分
SELECT FLOOR(1027.5/125) AS "TEST" FROM DUMMY
剩下的呢
SELECT MOD(1027.5,125) AS "TEST" FROM DUMMY
我们正在使用:
sap hana sql
水晶报告
树液b1
任何帮助都将不胜感激
提前谢谢!
1条答案
按热度按时间pobjuy321#
有几种方法可以实现您所描述的目标。
一种方法是将需求转换为一个函数,该函数接受两个输入参数值并返回生产轮次表。
它可以如下所示:
您可以像使用任何表一样使用此函数,但要使用以下参数:
可能需要解释的是
SERIES_GENERATE_INTEGER
. 这是一个特定于hana的内置函数,用于从“序列”返回大量记录。这里的级数是在最小和最大极限内的一系列周期,在两个相邻周期之间有一定的步长。在hana参考文档中可以找到更多关于如何工作的信息,但现在只需说,这是生成包含x行的结果集的最快方法。此序列生成器用于创建所有“完整”生产循环。第二部分
UNION ALL
然后,通过从内置表中选择只创建一行DUMMY
(DUAL
在甲骨文中)保证只有一条记录。最后,如果实际上没有余数,则需要“禁用”第二部分,这是由WHERE
条款。