Jasper Report实现水果选择各选项计数统计需求
水果选择次数统计的Jasper Report实现方案
第一步:编写统计用SQL查询
先通过SQL获取所需的统计数据,这是报表的数据源基础:
SELECT f.fruit, COUNT(CASE WHEN fc.choice_1 = f.id THEN 1 END) AS c1Count, COUNT(CASE WHEN fc.choice_2 = f.id THEN 1 END) AS c2Count, COUNT(CASE WHEN fc.choice_3 = f.id THEN 1 END) AS c3Count FROM Fruit f LEFT JOIN Fruit_choices fc ON f.id = fc.choice_1 OR f.id = fc.choice_2 OR f.id = fc.choice_3 GROUP BY f.id, f.fruit ORDER BY f.id;
这条SQL的逻辑是:通过左关联将水果表和选择记录表关联,用CASE语句分别匹配每个选择列的水果ID,统计符合条件的行数,最终按水果分组得到各位置的被选次数。
第二步:Jasper Report配置与设计
- 新建Jasper Report报表,配置对应的JDBC数据源,确保能连接到你的数据库。
- 在报表的查询窗口中粘贴上述SQL语句,验证查询结果是否和你期望的统计表格一致。
- 设计报表布局:
- 添加表头带区,插入文本框设置列标题:
fruit、c1Count、c2Count、c3Count(或对应中文标题)。 - 在细节带区插入文本框,分别绑定查询返回的
fruit、c1Count、c2Count、c3Count字段。 - 调整文本框的宽度、对齐方式,让报表排版整齐。
- 添加表头带区,插入文本框设置列标题:
- 预览报表,即可生成你需要的统计表格。
内容的提问来源于stack exchange,提问作者WOW123
相关产品推荐
相关产品推荐

