I need to nest an aggregate query in another HQL query, so I write this :
Code:
IQuery queryCommesseODL = this.m_session.CreateQuery("select odl from OrdineDiLavoro as odl inner join odl.Commessa as com where odl.Stato <> 'C' and odl.Commessa.Stato <> 'C' and odl.MatricolaSviluppatore=:dev and ((odl.OreTotali+(odl.MinutiTotali/60)) > (select (sum(gnt.Ore)+(sum(gnt.Minuti)/60)) from Gantt as gnt where gnt.Matricola=odl.MatricolaSviluppatore and gnt.Cliente.Codice=odl.CodiceCliente and gnt.Anno=odl.Anno and gnt.Numero=odl.Numero))");
but I got exception, so I tried to simplify my query but I always got exception: finally I tried a super simple query and I'm getting strange work:
these queries works
Code:
select gnt.Ore , gnt.Minuti from Gantt as gnt
select sum(gnt.Ore) , sum(gnt.Minuti) from Gantt as gnt
these fails with following exception
Code:
select gnt.Ore + gnt.Minuti from Gantt as gnt
select sum(gnt.Ore) + sum(gnt.Minuti) from Gantt as gnt
select sum(gnt.Ore) , sum(gnt.Minuti)/60 from Gantt as gnt
Exception
Code:
NHibernate.QueryException: , expected in SELECT [select sum(gnt.Ore) , sum(gnt.Minuti)/60 from FinitenessEvo.Domain.Gantt as gnt]
in NHibernate.Hql.Classic.SelectParser.Token(String token, QueryTranslator q)
in NHibernate.Hql.Classic.ClauseParser.Token(String token, QueryTranslator q)
in NHibernate.Hql.Classic.ClauseParser.End(QueryTranslator q)
in NHibernate.Hql.Classic.PreprocessingParser.End(QueryTranslator q)
in NHibernate.Hql.Classic.ParserHelper.Parse(IParser p, String text, String seperators, QueryTranslator q)
in NHibernate.Hql.Classic.QueryTranslator.Compile()
in NHibernate.Hql.Classic.QueryTranslator.Compile(IDictionary replacements, Boolean scalar)
in NHibernate.Impl.SessionFactoryImpl.GetQuery(String queryString, Boolean shallow, IDictionary enabledFilters) in Ayende.NHibernateQueryAnalyzer.Model.Project.HqlToSql(String hqlQuery, IDictionary parameters)
in Ayende.NHibernateQueryAnalyzer.UserInterface.Presenters.QueryPresenter.TranslateHql()
Why ?
Hibernate version: 1.2.0. CR1
Mapping documents:Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >
<class name="FinitenessEvo.Domain.Gantt, FinitenessEvo.Domain" table="tabgant" >
<composite-id>
<key-property name="IDMatricola" column="ganmat" />
<key-property name="Anno" column="ganann"/>
<key-property name="Numero" column="gannum"/>
<key-property name="CodiceCliente" column="gancli" />
<key-property name="Giorno" column="gangio" />
</composite-id>
<property name="Ore" column="ganore" />
<property name="Minuti" column="ganmin" />
<property name="FlagTipo" column="ganflg" />
<property name="Stato" column="ganac" />
<property name="OraInizio" column="gansth" />
<property name="MinutiInizio" column="ganstm" />
<property name="Note" column="gannot" />
</class>
</hibernate-mapping>
Full stack trace of any exception that occurs:
Name and version of the database you are using:
MS SQL 2005