表:ballotInfo
字段:id(bigint),teamName(varchar(50)),phone(varchar(20))SQL语句:
select teamName,count(teamName),
count(teamName)/(select count(*) from ballotinfo)
from ballotInfo b group by teamName要怎么转换成HQL语句呢?
String hql="select b.teamName,count(b.teamName)"+
",500*count(b.teamName)"+
",(select count(t2) from BallotInfo t2)"+
",500*count(b.teamName)/(select count(t3) from BallotInfo t3)"+ //加了这一句,立马报错,其它地方没有问题
" from BallotInfo b group by b.teamName order by count(b.teamName)";小弟实在是没有分了, 先行谢过!
字段:id(bigint),teamName(varchar(50)),phone(varchar(20))SQL语句:
select teamName,count(teamName),
count(teamName)/(select count(*) from ballotinfo)
from ballotInfo b group by teamName要怎么转换成HQL语句呢?
String hql="select b.teamName,count(b.teamName)"+
",500*count(b.teamName)"+
",(select count(t2) from BallotInfo t2)"+
",500*count(b.teamName)/(select count(t3) from BallotInfo t3)"+ //加了这一句,立马报错,其它地方没有问题
" from BallotInfo b group by b.teamName order by count(b.teamName)";小弟实在是没有分了, 先行谢过!
解决方案 »
- 一个小问题,兄弟姐妹们帮帮忙吧
- 怎样写一个管理系统
- 关于WebSpher MQ JMS配置和实现文件传输
- 哪位有简单些的jsp的源代码?找好久找不到,先谢谢了!!!
- struts中1张JSP页面如何能实现想.NET里的Page_Load事件呢?、???
- 关于使用JSTL的问题!!!!急哦!!!!!
- 请教一个JPQL句子
- 用过struts的高手,请进
- Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
- 在JAVA中XML以XSL交换数据不用流!
- 关于hibernate的query.list()查询的问题,请好心人解答一下
- 怎么用jsp动态合并单元格
不过,如雷贯耳!以前老师也没有说过不行, 一直以为:hql在功能上与sql媲美.
看看你胸花,小弟就信你了!
public List countInfo() {
return (List)super.getHibernateTemplate().executeFind(new HibernateCallback() {
public List doInHibernate(Session session) throws HibernateException,
SQLException {
//定义一个最终返回的集合
List<Result> resultList=new ArrayList<Result>();
//得到每一个国家的投票数
String sql="select teamName,count(teamName),"+
"500*count(teamName)/(select count(*) from ballotinfo) "+
"from ballotInfo b group by teamName";
Query query2=session.createSQLQuery(sql);
List list2=query2.list();
//把原来的结果,转到List<Result>这个专门的集合中去
Iterator it=list2.iterator();
while (it.hasNext()) {
Object[] arr=(Object[])it.next();
System.out.println("元素个数:"+arr.length);
Result result=new Result();
result.setName(arr[0].toString());
result.setNum((Integer)arr[1]);
result.setWidth((Integer)arr[2]);
System.out.print(result.getName()+"\t");
System.out.print(result.getNum()+"\t");
System.out.println(result.getWidth());
System.out.println("--------------------");
resultList.add(result);
}
return resultList;
}
});
}在我这段程序执行之后的结果居然是这样的:
元素个数:3
德国 22 22
--------------------
元素个数:3
荷兰 11 11
--------------------
元素个数:3
乌拉圭 20 20
--------------------
元素个数:3
西班牙 14 14
--------------------
按道理应该不同啊, 怎么可能第二个值和第三个值一模一样呢?????