用户表包含以下属性(dateOfBirth,race,gender,...)。我们希望以下列格式生成报告。
Year Race All Male Female 2000 Asian 2000 1000 1000 2000 Hispanic 1000 500 500 2001 Asian 1500 700 800 2001 Hispanic 1300 400 900 ...理想情况下,我想查看按上述参数过滤的不同报告(例如,2000年所有亚洲男性用户,2000 - 2005年所有亚洲用户,2001年所有西班牙裔社区)。获取此数据的最佳方法是什么,因为我希望避免对数据库进行太多命中来构建此数据。在获取/表示此数据时,什么框架是理想的Total 5800 2600 3200
答案 0 :(得分:2)
您可以查看Jasper Reports:
http://www.docstoc.com/docs/2139263/Jasper-Report-Tutorial
或
http://www.javaworld.com/javaworld/jw-09-2002/jw-0920-opensourceprofile.html
这是一个生成报告的智能框架。
答案 1 :(得分:1)
您没有提供有关您将使用的数据库后端的任何详细信息,但一般来说,生成此信息的最有效方法是使用正确的SQL处理数据聚合和数据库端过滤并传递只有结果集到您的报告生成器。对于第一个示例,它似乎是表中所有数据的聚合,数据库引擎将必须对所有行进行排序和处理,但最好不要在那里进行,而不是客户端。对于涉及数据子集的查询,请确保为查询正确编制索引。