【问题标题】:How to sum distinct values in RTF (BI Publisher)如何对 RTF 中的不同值求和(BI Publisher)
【发布时间】:2020-04-24 14:40:02
【问题描述】:
交易 ID |金额|日期
1 |200 | 20/04/2020
1 |200 | 21/04/2020
2 |300 | 22/04/2020
3 |400 | 2020 年 4 月 23 日
1 |200 | 21/04/2020
4 |200 | 17/04/2020
2 |300 | 22/04/2020
如何计算交易 ID 唯一的金额? RTF 文件 BI Publisher 上的小计和总计都需要这个。试过这个,但失败了,但返回空值。
【问题讨论】:
标签:
reporting
rtf
obiee
bi-publisher
【解决方案1】:
这是一个使用 for-each-group 函数和一个运行总变量的方法。
<?for-each:record_set?>
<?xdoxslt:set_variable($_XDOCTX,'running_amount',0)?>
<?for-each-group:record;transaction_id?>
<?xdoxslt:set_variable($_XDOCTX,'running_amount', xdoxslt:get_variable($_XDOCTX,'running_amount')+amount)?>
<?end for each group?>
<?end for each?>
Non-Unique Sum:<?sum(record/amount)?>
Unique Sum<?xdoxslt:get_variable($_XDOCTX,'running_amount')?>
<?end for each?>
样本数据
<record_set>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>2</transaction_id>
<amount>300</amount>
</record>
<record>
<transaction_id>3</transaction_id>
<amount>400</amount>
</record>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>4</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>2</transaction_id>
<amount>300</amount>
</record>
</record_set>