IReport创建问题 - 获取所有月份

时间:2015-09-18 08:05:39

标签: oracle jasper-reports crosstab

我想使用iReport(JasperReports)为各个月的员工创建一个LeaveCount的交叉表。我正在使用Oracle数据库。

问题是,我只得到措施存在的月份,我想显示一年中所有月份是否存在本月的措施(员工离职)。

2 个答案:

答案 0 :(得分:1)

您可以创建表格

Shutdown()

并在此表中插入所有12个月(01,02,03,04 ... 12)。 现在使用此表格查询如下

CREATE TABLE ALLMONTHS
(
    MONTHS_MM varchar2(2)
)
;

答案 1 :(得分:1)

这解决了@ Pu297建议的答案的问题。稍后我得到了一个更好的方法,它不涉及表创建,并且每次我需要在新数据库上运行报表时都会省去创建表的麻烦。

select a.mnth,b.leavecount from
(
     SELECT to_char(to_date(LVL,'MM'),'MM') mnth
     FROM (select level lvl from dual CONNECT BY LEVEL <=12)
) a
,(SELECT to_char(leavedate,'MM') AS MONTH,leavecount..."your query")b
WHERE a.mnth=b.MONTH(+)

根据我这个问题,这是更好的方法。 干杯!!!