Oracle 如何在矩阵报表中包含列的子列?

Oracle 如何在矩阵报表中包含列的子列?,oracle,oracle10g,Oracle,Oracle10g,矩阵报告的列中需要有子列 结构如下: Lease | Rental MTD | YTD | MTD | YTD -----+-----+---------+----- Segment | | | 我的疑问是如何拥有MTD和YTD(子列)的结构 在租赁和租赁(列)中。有没有关于如何合并相同内容的想法 将不胜感激 提前感谢, Co Oracler从数据库的角度来看,选择“子列”

矩阵报告的列中需要有子列

结构如下:

            Lease   |      Rental
          MTD | YTD |     MTD |  YTD
         -----+-----+---------+-----
Segment       |     |         |
我的疑问是如何拥有MTD和YTD(子列)的结构 在租赁和租赁(列)中。有没有关于如何合并相同内容的想法 将不胜感激

提前感谢,


Co Oracler从数据库的角度来看,选择“子列”就像选择普通列一样,这取决于您实际用于格式化报告的工具以及如何创建所述布局。

确切的解决方案将取决于您的数据模型,但遗憾的是,您忽略了向我们提供表格。因此,这只是一个可能解决方案的迹象。相关的技术是在查询投影中使用CASE

select 
       segment
       , sum(case ( when type = 'LEASE' and t_date >= trunc(sysdate, 'MON') then
                t_qty else 0 end) as lease_mtd
       , sum(case ( when type = 'LEASE' then
                t_qty else 0 end) as lease_ytd
       , sum(case ( when type = 'RENTAL'  then
                t_qty else 0 end) as rental_mtd
       , sum(case ( when type = 'RENTAL' and t_date >= trunc(sysdate, 'YYYY') then
                t_qty else 0 end) as rental_ytd
from your_tablee 
where t_date >= trunc(sysdate, 'YYYY')
sysdate上的TRUNC()是一个巧妙的技巧,它生成由格式掩码指示的日期。因此,“MON”掩码生成当月的第一天,“yyy”生成当年的1月1日