2014-10-27 20 views
4

我有兩個表InvoiceInvoiceLineItem。此InvoiceLineItem表包含:創建NHibernate Queryover以獲得兩個字段產品的組合總計

Id 
InvoiceId 
Quantity 
UnitPrice 

列。我想InvoiceId創建NHibernate的QueryOver聲明集團發票行項目,並得到UnitPriceQuantity

SQL的乘積的總和就是這個樣子。

SELECT InvoiceId, SUM(Quantity*UnitPrice) AS Total 
    FROM InvoiceLineItem 
GROUP BY InvoiceId 

我用Projections.Sum但我不知道怎麼才能乘兩列內部的(如果這是正確的做法)。

回答

9

它看起來並不是一個很好的方法來做到這一點。建立關的this answer,你可以使用VarArgsSQLFunction

這將生成SQL,看起來像這樣:

SELECT 
    sum((this_.Quantity*this_.UnitPrice)) as y0_, 
    this_.InvoiceId as y1_ 
FROM 
    InvoiceLineItem this_ 
GROUP BY 
    this_.InvoiceId 
+0

感謝安德魯,它幫助我! – Niruka 2014-10-28 09:13:14