2014-03-04 119 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上的查询 –