2014-03-04 116 views
0

我想通過編寫一個查詢與SQL查詢類似如下:查詢過與子查詢

select sum(customer) from 
(
    select customer, sales, date 
    from salestable 
    group by customer, sales, date 
) as x 

我無法弄清楚queryover在NHibernate的這一點。任何幫助將不勝感激。

+0

你爲什麼需要子選擇?難道你不能只寫:'從salestable'選擇總和(客戶)? – Perpetuum

+0

你不能用QueryOver從子查詢中選擇你必須重寫查詢,可能是@ Perpetuum建議。 –

+0

沒有列是不同的在我的真正的數據庫這是隻是爲了說明邏輯是相同的 –

回答

-1

你非常接近。你只需要別名子查詢...

SELECT count(x.customer) 
FROM (SELECT customer, sales, date FROM salestable GROUP BY customer, sales, date) x 

...其中x是別名。 (你也可以說「as x」,如果這有助於使它變得明顯的話。從技術上講,你不需要在主選擇中使用前綴,但是我始終認爲它有助於避免與其他表加入混淆,或在子查詢表。

請注意,這會不會選擇不同的客戶,只要任何實例。如果你想不同,這可能取決於你所使用的數據庫的不同而不同。對於SQL Server,如果也只是SELECT(DISTINCT x.customer)...

+0

感謝您的response.my問題是如何將此查詢轉換爲nhibernate上的查詢 –