如何通过SubSonic使用PARTITION和RANK功能

时间:2011-12-09 20:52:20

标签: subsonic rank database-partitioning

如何使用subsonic编写查询或lambda表达式,并使用以下函数轻松完成,这些函数可以通过SQL SERVER轻松完成

在您的标准中使用PARTITION和RANK

以下是我想通过SubSonic转换的查询

  

SELECT * FROM   (   SELECT H.location_id。 L.item_id AS po_item,H.po_no,H.order_date,H.created_by,   RANK()OVER(H.location_id的分区,L.item_id ORDER by H.location_id,L.item_id,H.order_date DESC)AS Rank   FROM p21_view_po_hdr H INNER JOIN p21_view_po_line L   ON H.po_no = L.po_no   )tmp

1 个答案:

答案 0 :(得分:0)

我从以下有用链接中找到了答案: Converting SQL Rank() to LINQ, or alternative

http://smehrozalam.wordpress.com/tag/ranking-functions/ 在LINQ中,使用let关键字可以实现类似的结果。这是一个例子:

1
2
3
4
5
6
7
8

from p in PersonOrders
//where conditions or joins with other tables to be included here
group p by p.PersonID into grp
let MaxOrderDatePerPerson = grp.Max ( g=>g.OrderDate )

from p in grp
where p.OrderDate == MaxOrderDatePerPerson
select p