如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器

Posted

技术标签:

【中文标题】如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器【英文标题】:How to maintain a running counter within an Oracle APEX Interactive grid report 【发布时间】:2020-01-14 09:32:33 【问题描述】:

环境:Oracle APEX v5.1 / Oracle 12c

我有一个交互式网格报告,我需要根据之前的单元格值附加一个计数器 - 在下面的示例中,Order No Item 是附加了“-1”等的订单号值。

这里有一些规则:

1) 当 Order No. 值发生变化时,“Order No Item”计数器需要重置回 1,正如您在值从 100 变为 200 时看到的那样。 2) “Order No Item”还需要知道何时使用现有的 Order No,并将计数器增加到该 Order No 的下一个值。

例如:

Order No.   Order No Item
----------- -------------
100         100-1
100         100-2
100         100-3
200         200-1
200         200-2
100         100-4

基于上述情况,我正在 Oracle APEX 交互式网格中执行此操作,但不确定满足上述要求的最佳方法是什么。

我正在考虑将值存储在 APEX 集合中以维护计数器。

注意:我的 IG 不是基于任何基础表,它都需要在用户输入数据时逐行计算。

【问题讨论】:

嗨,托尼,您还在寻求帮助吗? 【参考方案1】:

你需要一个row_number()

select t.*, row_number() over (partition by orderno order by ?) as OrderNoItem
from table t;

? 假定您的数据具有标识数据序列的默认排序。

【讨论】:

仅供参考,我将更新我的原始帖子,我的 IG 不是基于任何基础表,所有这些都需要逐行计算。

以上是关于如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用 sql 在 apex oracle 的交互式网格中实现选择列表以及 oracle APEX 中可用的内容?

Oracle APEX 交互式网格:如何使用 PLSQL 访问内容?

如何在 oracle apex 18 中编辑交互式网格(带有复杂的 sql 查询)?

如何在交互式网格上显示所有数据,然后使用 oracle_apex 上的穿梭过滤器减少它?

Oracle APEX交互式网格新行不可编辑

如何在 Apex 交互式报表的列数据中显示新行