我用的是Oracle,使用Hibernate来操作数据库的,2个类定义如下:public class A {
private int id;
private String name;
private Set<B> bs = new HashSet<B>();
}
...
public class B {
private int id;
private int data_type;
private double data_value;
private Timestamp collect_time;
private A a; 其中省略get set方法,对应的数据库中表B中有一列为A的外键列。
现在我要来查询如下, String hql = "select day(collect_time),b.data_value,b.data_type,b.a from B b where day(collect_time)=21 order by b.data_type group by b.data_type";
Iterator it = session.createQuery(hql).iterate();为什么会说不是group by语句?明明挺对的啊?PS:顺便再问一下,我要是想通过B类中A的引用a的id来进去分组查询,又应该怎么写呢???
请大家帮忙解答下,谢谢!!!
private int id;
private String name;
private Set<B> bs = new HashSet<B>();
}
...
public class B {
private int id;
private int data_type;
private double data_value;
private Timestamp collect_time;
private A a; 其中省略get set方法,对应的数据库中表B中有一列为A的外键列。
现在我要来查询如下, String hql = "select day(collect_time),b.data_value,b.data_type,b.a from B b where day(collect_time)=21 order by b.data_type group by b.data_type";
Iterator it = session.createQuery(hql).iterate();为什么会说不是group by语句?明明挺对的啊?PS:顺便再问一下,我要是想通过B类中A的引用a的id来进去分组查询,又应该怎么写呢???
请大家帮忙解答下,谢谢!!!
where day(collect_time)=21 order by b.data_type group by b.data_type首先order by 要放在最后还有你的查询根本没用到聚合函数
要用group by 干嘛
去掉order by也是错,而且用不用聚合函数没关系的吧
楼主对分组查询不理解
找本sql的书看一下吧