我们有一个包含4个层次结构的系统。1.高级经理2.经理3.主管4.员工
与所有这些相关的数据都以各自的详细信息存储在不同的表中。有一个包含所有这些层次结构的地址的地址表。Sample Data Set
我们将能够按城市,州和国家/地区对每个ID进行计数。由于OLAP多维数据集不能直接用作BIRT中的数据集,因此,我可以将所有这些数据合并到一个表中并加载它,然后使用以下层次结构创建多维数据集吗?
COUNTRY STATE CITY SENIOR MANAGER MANAGER SUPERVISOR EMPLOYEE
并在摘要字段中添加以下内容。
SENIOR MANAGER COUNT MANAGER COUNT SUPERVISOR COUNT EMPLOYEE COUNT
目标是按地区或职位(高级经理,经理等)报告员工人数。
谢谢。
通常,最好在数据库端进行汇总,例如使用SQL JOIN语法和GROUP BY。
如果需要聚合数据和详细信息,则有两个选择(取决于您的数据库,我不知道MySQL是否支持此信息:]
您可以只选择详细信息(全部在一个查询中),并在表或列表项上使用BIRT的分组和聚合功能以使聚合并列。
或者您可以使用SQL分析函数(类似于组函数,但具有OVER(...)子句)在SQL中完成所有操作,然后让BIRT发出结果。不过,您仍然需要BIRT的分组,才能以正确的页眉或页脚行输出聚合。
通常,最好让数据库做更多的工作。这是更可重用的(例如,如果您以后决定使用其他报告库),并且速度也更快,因为这是RDBMS的目的。
但是,您也可以在BIRT报表布局中嵌套表格或列表项(此功能鲜为人知)。这使您可以开发主/详细报告,这些报告针对每个级别使用单独的SQL查询。但是,如果您想要聚合,则使用这种方法会使事情变得更加复杂。