2011-12-09 2 views
0

Comment puis-je écrire une requête ou une expression lambda à l'aide subsonique avec les fonctions suivantes qui sont facilement faites par SQL SERVERComment puis-je utiliser PARTITION et la fonctionnalité de RANK par SubSonic

Utilisation partitionner et RANK dans vos critères

Voici la requête que je voulais convertir par SubSonic

SELECT * FROM ( SELECT H.location_id. L.item_id AS po_item, H.po_no, H.order_date, H.created_by, RANK() OV ER (PARTITION BY H.location_id, ORDER BY L.item_id H.location_id, L.item_id, H.order_date DESC) AS Rank DE p21_view_po_hdr H INNER JOIN p21_view_po_line L ON H.po_no = L.po_no ) tmp

+0

Qu'est-ce que subsonique est que créer un code sql, à partir d'une des variables de type fort pour éviter les erreurs sur le développement, et la rendre plus facile d'écrire du code SQL. Mais si vous savez ce que vous faites sur sql, gardez le sql tel quel et utilisez la commande sql directe de subsonic. – Aristos

+0

Je ne suis pas en mesure de trouver la fonction Partition et Rank en subsonique jusqu'à présent. –

Répondre

0

Je trouve une réponse ci-dessous des liens utiles: Converting SQL Rank() to LINQ, or alternative et

http://smehrozalam.wordpress.com/tag/ranking-functions/ Dans LINQ, résultat similaire peut être obtenu en utilisant le mot-clé let. Voici un exemple:

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 
Questions connexes