我在Oracle Apex中生成报告时遇到问题。我想要显示一个实体及其子实体的报告。这里有很多顾客。客户拥有0个或多个IT架构。IT架构由0个或多个IT系统和0个或多个IT服务提供商组成。
现在我用一个连接来选择这个数据(it服务提供者还没有实现,所以我们只有cutomers,it架构和it系统):(KUNDEN =客户)
SELECT ISP_KUNDEN.*,
ISP_ARCHITEKTUREN.ARCHITEKTUR_ID,
ISP_ARCHITEKTUREN.VERSION,
ISP_ARCHITEKTUREN.THEMA,
ISP_ARCHITEKTUREN.STATUS,
...
ISP_IT_SYSTEME.SYSTEM_ID,
ISP_IT_SYSTEME.NAME,
ISP_IT_SYSTEME.PRODUKTFAMILIE,
...
FROM ISP_KUNDEN
LEFT JOIN ISP_ARCHITEKTUREN
ON ISP_KUNDEN.KIS_NUMMER = ISP_ARCHITEKTUREN.KUNDEN_KIS_NUMMER
LEFT JOIN ISP_ARCHITEKTUREN_IT_SYSTEME
ON ISP_ARCHITEKTUREN.ARCHITEKTUR_ID = ISP_ARCHITEKTUREN_IT_SYSTEME.ARCHITEKTUR_ID
LEFT JOIN ISP_IT_SYSTEME
ON ISP_ARCHITEKTUREN_IT_SYSTEME.IT_SYSTEM_ID = ISP_IT_SYSTEME.SYSTEM_ID
输出是这样的:
这看起来并不好,因为如果一个客户有多个架构,或者一个架构有多个it系统,那么关于客户和架构的所有信息都会被多次列出。使用控制中断,它看起来更好一点。
但是,对于每个it系统,it体系结构仍然被多次列出。有没有一种方法可以让它看起来像下面的例子,而不是硬编码html表?
我希望能够在这个嵌套的报告中进行搜索,所以硬编码html表不是一个选择。我们的目标是能够通过it系统过滤客户。示例:显示使用系统A和系统B的用户。使用我现在使用的联接,这不起作用。是否需要在查询中使用group by?
我希望能够张贴图像,但stackoverflow有点限制。
发布于 2014-08-09 03:21:26
此示例来自在apex.oracle.com上请求工作空间时创建的标准apex演示应用程序
select
lpad(to_char(o.order_id),4,'0000') order_number,
o.order_id,
to_date(to_char(o.order_timestamp,'mm yyyy'), 'mm yyyy') order_month,
trunc(o.order_timestamp) order_date,
o.user_name sales_rep,
o.order_total,
c.cust_last_name || ', ' || c.cust_first_name customer_name,
(select count(*) from demo_order_items oi where oi.order_id = o.order_id) order_items,
o.tags tags
from
demo_orders o,
demo_customers c
where
o.customer_id = c.customer_id
原始列表
添加control break Actions>Format>Control Break后
https://stackoverflow.com/questions/24775573
复制相似问题