`
java-xb
  • 浏览: 124870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

按不同的字段分类查询

阅读更多

假设有一个学生成绩表
字段名       说明
id         编号
name       姓名
team       班级
course     科目
等等 现在要把这表中数据先按班级分类再按人名分类,进行统计学生的平均成绩等等。要显示的表格效果大致是这样的

班级1

学生1                          学生2

数学  英语   物理           数学    英语     物理

班级2

学生3                          学生4

数学  英语   物理           数学    英语     物理


我想了一个用list嵌套list的方法实现 :先按班级把查询结果分类,放在两个list中,再在每个list用同样的方法在按人名分类,也放在一个list中。

public List<Users> findAll(){
		Session session = HibernateSessionFactory.getSession();
		List<Users> list = session.createQuery("from Users u order by u.id").list();
		Iterator<Users>  iter1 = list.iterator();
		List allList =new ArrayList();
		int begin = 0;
		int end = 0;	
		String team = null;		
		while(iter1.hasNext()){
			Users user = iter1.next();
			if(team==null){
				team = user.getTeam();
			}
			if(team!=null&&!team.equals(user.getTeam())){
				List teamList = list.subList(begin, end);
				Iterator<Users> iter2 = teamList.iterator();
				List firstList = new ArrayList();
				String name = null;int beg = 0;int en = 0;
				while(iter2.hasNext()){
					Users user_name = iter2.next();
					if(name==null){
						name = user_name.getName();
					}
					if(!name.equals(user_name.getName())){
						firstList.add(teamList.subList(beg,en));
						name = user_name.getName();
						beg = en;
					}
					en++;
					if(!iter2.hasNext())firstList.add(teamList.subList(beg,en));
				}
				allList.add(firstList);
				team = user.getTeam();
				begin = end;
			}
			end++;
			if(!iter1.hasNext()){
				List teamList = list.subList(begin, end);
				Iterator<Users> iter2 = teamList.iterator();
				List firstList = new ArrayList();
				String name = null;
				int beg = 0;
				int en = 0;
				while(iter2.hasNext()){
					Users user_name = iter2.next();
					if(name==null){
						name = user_name.getName();
					}
					if(!name.equals(user_name.getName())){
						firstList.add(teamList.subList(beg, en));
						name = user_name.getName();
						beg = en;
					}
					en++;
					if(!iter2.hasNext()){
						firstList.add(teamList.subList(beg,en));
					}
				}
				allList.add(firstList);
			 }
		}
	return allList;
  }

 

分享到:
评论

相关推荐

    网软志成分类信息网站系统.net官方商业版

    网软分类信息网站系统.net正式版下载分类信息网站模板系统预设了几十种信息类别,针对不同信息具有不同的发布表单和查询界面。具有会员注册、分类信息发布、会员积分、实名验证,信息管理等功能。采用灵活的可视化...

    生活分类信息发布网站的优秀网站管理系统正式版

    网软分类信息网站系统.net正式版下载分类信息网站模板系统预设了几十种信息类别,针对不同信息具有不同的发布表单和查询界面。具有会员注册、分类信息发布、会员积分、实名验证,信息管理等功能。采用灵活的可视化...

    分类信息系统正式版下载

    除此以外,系统还可以对不同分类栏目,不同分站设置不同的标题、关健词、描述进行了优化,专为搜索引擎优化(SEO)开发了功能模块。 多级用户权限与内容管理支持 后台管理员可以给不同的用户分配不同的管理权限,...

    PHP生活分类信息网站模板

    9、自定义信息字段模型:各栏目类别分类信息模型选项字段完全自定义。 10、SEO优化:站务,信息,新闻,店铺,商家黄页 可设置不同的路径显示方式,包括静态,伪静态,动态。 11、自助置顶:分类信息可限时分类置顶...

    仿赶集网站模板.net分类信息管理系统下载

    网软分类信息系统asp.net正式版下载分类信息网站网页模板系统预设了几十种信息类别,针对不同信息具有不同的发布表单和查询界面。具有会员注册、分类信息发布、会员积分、实名验证,信息管理等功能。采用灵活的可视...

    轻量万能自定义信息管理系统软件 v7.1.028

    轻量万能自定义信息管理系统软件是为了解决所有企业团队或个体商户所面临的业务管理难,市场上找不到一款适合自己需要的,同时操作起来与Execl表格又相差不大的信息管理软件...5、自定义字段查询:可以按不同的字段进行

    arcgis工具

    如:“AREA”,如果查询的是个人地理数据库数据,则需要将字段名包含在方括号内,如:[AREA],如果查询的是ArcSDE地理数据库数据或是ArcIMS要素类或ArcIMS影象服务子层中的数据,则不需要将字段名括起,如:AREA ...

    碧秀分类信息程序 v2.0.rar

    App_Data 文件夹存在数据库文件(mssql2008r2版本),及sql脚本文件(mssql2005及以上使用),可以根据实际情况选择,qqwry.dat文件为纯真ip查询库, Document 文件夹下存放有文档,包括模板语法简单介绍和模板需要的字段 ...

    仓库管理系统

    (注1:仓库盘点时,请先打印库存查询表,然后按库存查询表,对仓库物料进行盘点,若发现仓库物料的实际数量与库存查询表数量不同,则在库存查询表上作一数量记录,现场盘点完毕后,进入系统对有记录的物料,进行...

    vb+sql server图书借阅管理系统

    图书分类信息的添加、修改、删除和查询。此功能为图书的分类管理提供依据。 图书基本信息的添加、修改、删除和查询。 借阅证件分类信息的添加、修改、删除和查询。不同类型的借阅证件可以借阅的最大数量、最大天数和...

    JSP无限级分类目录树-sorttree.zip

    数据库设计:为了实现无限级分类目录树,需要在数据库中设置一个parent_id字段,用于存储每个节点的父节点ID。这样就可以通过递归方式来实现树形结构的展开和收起。 数据的获取和处理:在JSP页面中,需要通过SQL查询...

    通用型客户关系管理系统(v2版本)

    客户属性管理:可以自定义客户资料的扩展属性,如:按行业或公司业务特点来新增客户字段。 客户分类管理:可以按自身的情况对客户的进行分类,如:意向客户,成交客户,潜在客户等分类。 销售跟进管理:可以对客户的...

    Oracle数据库设计策略及规范.docx

    如果表按某些字段进行增长,则采用按字段值范围进行范围分区;如果表按某个字段的几个关键值进行分布,则采用列表分区;对于静态表,则采用Hash分区或列表分区;在范围分区中,如果数据按某关键字段均衡分布,则采用...

    eas供应链dep案例集

    新增及调整字段 EASSCMA1P0047 费用项目增加对方科目字段并携带到应付单 "客户需要按照费用项目对应不同科目,通过DAP自动产生凭证。原计划是通过在费用项目添加记账分类,然后根据记账分类取对应的科目,但是目前...

    客齐齐分类信息发布系统v2.0

    精确的搜索系统,精确到数据库每一个字段,不放过任何一条有用的信息,被查询的关键字以高亮度背景色提示显示。  10.几乎每一个分类栏目的名称都可以在后台修改添加完成,不需要修改代码。  11.强大的用户...

    研究生选校信息服务平台的数据库设计与数据操作

    (3)分类查询、筛选院校信息功能:平台能够提供按学校类别、区域、所在地、专业方 向等不同字段的搜索排序功能,在浏览的同时进行院校的收藏与取消收藏; (4)用户的互动管理功能:用户之间可以进行交流并分享信息...

    数据库之图书管理系统实验报告(1).doc

    读者管理子系统 主要用于查询图书,其中直接查询包括按图书编号直接查询,按书名查询,按作者查 询,按出版社查询(可选模糊查询)。多条件查询可以按读者的要求选取所需要的图书直 接查询和模糊查询,多条件查询)。 ...

    房产信息网站管理系统

    会员管理 - 分类查询和管理会员、设置单个会员权限、修改会员资料。 栏目管理 - 自由创建栏目频道,设置栏目名称和显示参数 资讯管理 - 具有资讯分类、发布、搜索、批量管理,支持文章发布、视频发布和网址转发 ...

    简易漂亮实用的订货系统

    4.业务操作员的用户类型为1(yhlx),主要负责基本业务的操作,包括对各相关数据表的插入、修改、删除,以及对各表格中不同字段的查询(包括精确查询和模糊查询)。还有按照不同的关键字(供应商、物料编码)进行...

    ssm中小型企业设备管理系统120920(附源码+数据库)

    可通过入库时间、设备编号,设备分类等字段查询新增设备的信息等。 (4)设备维修管理:包括维修设备信息管理。主要完成增加维修设备,修改、查询维修设备信息,修改、查询维修状态等操作。 (5)设备的报废管理:...

Global site tag (gtag.js) - Google Analytics