我想使用iReport(JasperReports)为各个月的员工创建一个LeaveCount的交叉表。我正在使用Oracle数据库。
问题是,我只得到措施存在的月份,我想显示一年中所有月份是否存在本月的措施(员工离职)。
答案 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(+)
根据我这个问题,这是更好的方法。 干杯!!!