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