栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

BIRT实现cross table

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BIRT实现cross table

BIRT实现cross table 步骤一:SQL实现业务场景

场景介绍:输出学生工号,学生姓名,以及行转列实现的语文、数学、英语对应的分数(没有建表了~)

```sql
WITH aa AS (
	SELECt 1 AS emp_id,'T0001' AS staff_no,'张三' AS employee_name
	UNIOn ALL
	SELECT 2 AS emp_id,'T0002','李四'
	UNIOn ALL
	SELECT 3,'T0003','王五'
),
bb AS (
	SELECT 1 AS emp_id,'语文' AS subject,60 AS "number"
	UNIOn ALL
	SELECT 1,'数学',70
	UNIOn ALL
	SELECT 1,'英语',80
	UNIOn ALL
	SELECT 2,'语文',80
	UNIOn ALL
	SELECT 2,'数学',55
	UNIOn ALL
	SELECT 2,'英语',90
	UNIOn ALL
	SELECT 3,'语文',63
	UNIOn ALL
	SELECT 3,'数学',77
	UNIOn ALL
	SELECT 3,'英语',61
)
SELECT 
	aa.emp_id,
	MAX(aa.staff_no) AS staff_no,
	MAX(aa.employee_name) employee_name,
	MAX( CASE WHEN bb.subject = '语文' THEN bb.number ELSE 0 END) AS "语文",
	MAX( CASE WHEN bb.subject = '数学' THEN bb.number ELSE 0 END) AS shuxue,
	MAX( CASE WHEN bb.subject = '英语' THEN bb.number ELSE 0 END) AS english
FROM aa 
JOIN bb
ON aa.emp_id = bb.emp_id
GROUP BY aa.emp_id
步骤二:eclipse里画cross table

data sourece:新建一个data source;用来配置数据库连接地址,连接账号密码

Driver Class: 根据自己的数据类型选择 例如sql/mysql
Database URL: 数据库URL地址
User Name:数据库账号
Password:数据库密码
输入这四项点击保存

打开eclipse,Data Sets文件夹新建一个new data sets(具体如何引用BIRT插件:自行百度)

点击刚刚创建好的文件,这里只用到Querry跟Preview Results
querry:将步骤一的sql代码全部复制进去

然后点击Preview Results,可以看到显示效果

Data Cubes----->右键 new Data Cubes

点击刚创建的data sets,命名为cross_report.rptdesign

主要配置groups and summarie:groups and summaries

groups(Dimensions):放需要分组的字段,拖拽Available Fields里的字段即可

summary fields(Measures):需要行转列的字段,拖拽Available Fields里的字段即可

点击data sets文件夹中,在cross_report.rptdesign插入交叉表

在cross_report.rptdesign文件中,右键insert---->cross tab

下图就是插入成功

将data sets 文件夹对应的值拖拽到cross_report.rptdesign,如下图

拖拽之后的效果

运行看效果


备注:如果想多几个输出列,点击输出列的图标,右键show/Hide Group levels

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027484.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号