在HANA / CrystalReports中使用参数计算查询

罗慕隆

我在解释我的必要性时遇到了麻烦,因此我将介绍这种情况。


场景:

  • 产品A一次最多可生产125KG。
  • 操作员收到了1027,5KG产品A的生产订单。
  • 操作员必须计算出每轮他必须制造多少轮并调整零件数量。

我们想要创建一个报告,其中已经完成了这些计算,并且根据此场景的值,我们认为第一步将是返回以下内容:

圆量(KG)
1 125
2 125
3 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
  • 水晶报表
  • SAP B1

任何帮助,将不胜感激

提前致谢!

拉尔斯(Lars Br。)

有几种方法可以实现您想要的描述。

一种方法是将需求转换为采用两个输入参数值并返回生产回合表的函数。

看起来可能像这样:

create or replace  function production_rounds(
            IN max_production_volume_per_round decimal (10, 2)
          , IN production_order_volume         decimal (10, 2)
          )
returns table   (
          production_round integer
        , production_volume decimal (10, 2))
as
begin
declare rounds_to_produce integer;
declare remainder_production_volume decimal (10, 2);

    rounds_to_produce := floor( :production_order_volume / :max_production_volume_per_round);
    remainder_production_volume := mod(:production_order_volume, :max_production_volume_per_round);

    return 
        select /* generate rows for all "max" rounds */
                 s.element_number                   as production_round
               , :max_production_volume_per_round   as production_volume
        from
            series_generate_integer
                (1, 1, :rounds_to_produce + 1) s
    UNION ALL
        select /* generate a row for the final row with the remainder */
                :rounds_to_produce + 1              as production_round
              , :remainder_production_volume        as production_volume
        from
            dummy
        where 
            :remainder_production_volume > 0.0;

end;

您可以像使用任何表一样使用此函数-但可以使用参数:

select * from production_rounds (125 , 1027.5) ;

PRODUCTION_ROUND    PRODUCTION_VOLUME
1                   125              
2                   125              
3                   125              
4                   125              
5                   125              
6                   125              
7                   125              
8                   125              
9                   27.5             

可能需要解释的位是SERIES_GENERATE_INTEGER这是HANA特定的内置函数,可从“系列”返回许多记录。这里的序列是最小和最大限制内的一系列周期,在两个邻接周期之间具有一定的步长。有关如何工作的更多信息,请参见HANA参考文档,但是现在,这只是用X行生成结果集的最快方法。

此系列生成器用于创建所有“完整”生产回合。UNION ALL然后,对于第二部分,通过从内置表DUMMYDUAL在Oracle中)中进行选择来创建仅一行,该表保证只有一条记录。最后,如果实际上没有剩余部分,则需要“禁用”第二部分,这是通过该WHERE子句完成的

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在HANA中使用SELECT的UPSERT

来自分类Dev

使用R从HANA提取表

来自分类Dev

使用boost :: hana获取函数参数的类型

来自分类Dev

SAP HANA - 计算列中的计算

来自分类Dev

使用 col=null 分区的 SAP HANA 分区

来自分类Dev

HANA SQL-无法在子查询中使用序列号

来自分类Dev

使用ssrs中的输入参数执行Hana存储的proc

来自分类Dev

如何处理在SAP HANA XS应用程序中使用1000行的HANA表创建的ODATA服务

来自分类Dev

SAP HANA CDS视图与计算视图与表函数

来自分类Dev

如何通过jdbc在HANA上创建(图形)计算视图

来自分类Dev

sap hana 图形计算视图中的散列/加密

来自分类Dev

在 SAP HANA 中运行查询的正确方法是什么

来自分类Dev

Hana参数化存储的proc问题简单的jdbc模板

来自分类Dev

Cypher 查询:如何在 Agensgraph 和 SAP HANA 中计算余弦相似度

来自分类Dev

是否有可能对使用Boost Hana的方法进行反思?

来自分类Dev

无法使用execBatch()在Hana数据库中创建用户

来自分类Dev

SAP HANA hdblci软件包-使用列名获取数据

来自分类Dev

在扣除 auto 之前使用 boost::hana::eval_if_t

来自分类Dev

无法使用 JDBC 连接到 SAP HANA 2.0

来自分类Dev

如何使用SQL查询在Hana DB Password中转义特殊字符?

来自分类Dev

C ++:使用boost :: hana将数组元素扩展为函数的参数

来自分类Dev

如何在SAP HANA DB中使用具有多行的表变量?

来自分类Dev

有没有办法在SQL HANA的TO_DATE函数中使用REPLACE函数

来自分类Dev

在代码中使用没有 UID 和 PWD 的 HDODBC 驱动程序连接到 SAP HANA

来自分类Dev

SAP HANA 智能数据访问:无法计算虚拟表 (Hive) 的行数

来自分类Dev

boost :: hana tuple解压缩用于可变参数模板实例化

来自分类Dev

boost :: hana tuple解压缩用于可变参数模板实例化

来自分类Dev

如何使用HANA存储过程的输入参数中的字段为execute_immediate语句动态生成表名?

来自分类Dev

有没有办法在没有源表的情况下在 HANA 中使用 MERGE?

Related 相关文章

  1. 1

    在HANA中使用SELECT的UPSERT

  2. 2

    使用R从HANA提取表

  3. 3

    使用boost :: hana获取函数参数的类型

  4. 4

    SAP HANA - 计算列中的计算

  5. 5

    使用 col=null 分区的 SAP HANA 分区

  6. 6

    HANA SQL-无法在子查询中使用序列号

  7. 7

    使用ssrs中的输入参数执行Hana存储的proc

  8. 8

    如何处理在SAP HANA XS应用程序中使用1000行的HANA表创建的ODATA服务

  9. 9

    SAP HANA CDS视图与计算视图与表函数

  10. 10

    如何通过jdbc在HANA上创建(图形)计算视图

  11. 11

    sap hana 图形计算视图中的散列/加密

  12. 12

    在 SAP HANA 中运行查询的正确方法是什么

  13. 13

    Hana参数化存储的proc问题简单的jdbc模板

  14. 14

    Cypher 查询:如何在 Agensgraph 和 SAP HANA 中计算余弦相似度

  15. 15

    是否有可能对使用Boost Hana的方法进行反思?

  16. 16

    无法使用execBatch()在Hana数据库中创建用户

  17. 17

    SAP HANA hdblci软件包-使用列名获取数据

  18. 18

    在扣除 auto 之前使用 boost::hana::eval_if_t

  19. 19

    无法使用 JDBC 连接到 SAP HANA 2.0

  20. 20

    如何使用SQL查询在Hana DB Password中转义特殊字符?

  21. 21

    C ++:使用boost :: hana将数组元素扩展为函数的参数

  22. 22

    如何在SAP HANA DB中使用具有多行的表变量?

  23. 23

    有没有办法在SQL HANA的TO_DATE函数中使用REPLACE函数

  24. 24

    在代码中使用没有 UID 和 PWD 的 HDODBC 驱动程序连接到 SAP HANA

  25. 25

    SAP HANA 智能数据访问:无法计算虚拟表 (Hive) 的行数

  26. 26

    boost :: hana tuple解压缩用于可变参数模板实例化

  27. 27

    boost :: hana tuple解压缩用于可变参数模板实例化

  28. 28

    如何使用HANA存储过程的输入参数中的字段为execute_immediate语句动态生成表名?

  29. 29

    有没有办法在没有源表的情况下在 HANA 中使用 MERGE?

热门标签

归档