为BIRT报告获取数据的正确方法

问题描述 投票:0回答:1

我们有一个包含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

目标是按地区或职位(高级经理,经理等)报告员工人数。

谢谢。

mysql sql birt olap
1个回答
0
投票

通常,最好在数据库端进行汇总,例如使用SQL JOIN语法和GROUP BY。

如果需要聚合数据详细信息,则有两个选择(取决于您的数据库,我不知道MySQL是否支持此信息:]

您可以只选择详细信息(全部在一个查询中),并在表或列表项上使用BIRT的分组和聚合功能以使聚合并列。

或者您可以使用SQL分析函数(类似于组函数,但具有OVER(...)子句)在SQL中完成所有操作,然后让BIRT发出结果。不过,您仍然需要BIRT的分组,才能以正确的页眉或页脚行输出聚合。

通常,最好让数据库做更多的工作。这是更可重用的(例如,如果您以后决定使用其他报告库),并且速度也更快,因为这是RDBMS的目的。

但是,您也可以在BIRT报表布局中嵌套表格或列表项(此功能鲜为人知)。这使您可以开发主/详细报告,这些报告针对每个级别使用单独的SQL查询。但是,如果您想要聚合,则使用这种方法会使事情变得更加复杂。

© www.soinside.com 2019 - 2024. All rights reserved.