嘿我试图每小时每小时24小时显示如下:
00,01,02,03,04,05 ....23.
使用Birt Jdbc连接数据集:
查询:
select count(*) task_num , to_char(end_time,'hh24') dt from t_student where end_time>='2015-09-28 00:00' and end_time<'2015-09-28 23:00 group by to_char(end_time,'hh24')
结果就是这样09,11,14
但如果数据不可用,我需要添加 例如显示符号--
或null
。预期结果如显示Eclipse Birt Table: 这里的task_num列值为
3,6.
dt_00 dt_01 dt_02 dt_03 dt_04 dt_05 dt_06 dt_06....dt_23 total
3 -- 6 -- -- -- -- -- -- 9
注意:我在下面提到链接,但我仍然无法解决它
答案 0 :(得分:0)
您需要在查询中生成空行,否则BIRT无法自行完成。最简单的方法是创建一个包含所有小时数的24行表,并为数据集使用左连接,例如:
select count(*) task_num , hour.dt
from hour
left join t_student
on hour.dt=to_char(end_time,'hh24')
where end_time>='2015-09-28 00:00' and end_time<'2015-09-28 23:00
group by hour.dt
Oracle的另一个选择,似乎用户使用&#34; connect by&#34;生成this example中的实时时间范围。
然后在交叉表中,BIRT显示空白&#34;我们可以设置字符串值的属性&#34; - &#34;应该替换空值