Как я могу использовать функциональность PARTITION и RANK через SubSonic - PullRequest
0 голосов
/ 10 декабря 2011

Как я могу написать запрос или лямбда-выражение, используя subsonic со следующими функциями, которые легко выполняются через 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 (PARTITION BY H.location_id, L.item_id ORDER BY H.location_id, L.item_id, H.order_date DESC) AS Ранг FROM p21_view_po_hdr H ВНУТРЕННЕЕ ПРИСОЕДИНЕНИЕ

1 Ответ

0 голосов
/ 24 октября 2013

Я нашел ответ из следующих полезных ссылок: Преобразование SQL Rank () в LINQ или альтернативный и

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
...