2012-04-12 8 views
2

をnHibernate QueryOverを使用して使用する集計式を含む一連の値を選択します。したがって、SQLは次のようになります。nhibernateクエリオーバーで式を選択

SELECT SUM(Total/(TaxRate + 1)) Totals FROM Contract Group By CustomerId 

これはどこでサポートされているのですか?私はwhere句を式として書くことはできますが、select as式の列は定義できません。私はあなたのコードを持っていけないので

+2

HQLはここにあなたの友人です!あなたはゼロアペット率を持っています。 – Rippo

+0

別の方法は、その計算とマップを持つビューを書くことです – Rippo

答えて

1

私はこのいずれかを検証カントが、あなたはこれを試すことができます。

var dividePropertyProjection = Projections.SqlProjection(
       "SUM(Total/TaxRate+1) as Totals", new string[] {"Totals"}, new IType[] {NHibernateUtil.Decimal}); //Assuming the sum is decimal, you can change it 



var list= Session.QueryOver<Contract>().Select(Projections.Group<Contract>(x=>x.CustomerId),dividePropertyProjection).List(); 

戻りますどのようなリストわからない、私はそれがCustomerId, Sum組み合わせを返す必要があります推測しています。

希望すること

+0

それは素晴らしいです!クエリ全体の変換を保存します。 – Sam

関連する問題