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日