如何使用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
答案 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