2009-11-10 108 views
0

分組,我有以下表「GroupPriority」:亞音速3

Id Group Priority 
1  1   0 
2  2   0 
3  3   0 
4  2   1 
5  1   1 
6  2   2 
7  3   1 

我想這些的「集團」小組,由「優先級」命令他們,然後得到一個在每個「集團」與使用LINQ和亞音速3

在這種情況下,優先級最高的結果將是:

Id Group Priority 
5  1   1 
6  2   2 
7  3   1 

的SQL就像這樣:

SELECT * 
FROM GroupPriority 
WHERE (Priority = 
        (SELECT MAX(Priority) 
        FROM GroupPriority 
        WHERE (Group = GroupPriority.Group))) 

感謝

+0

你可以回答你自己的問題,而不是編輯的問題本身。這可以讓其他人對你的答案的正確性進行投票。 – 2009-11-12 05:47:48

+0

改變了它,從第一篇文章中刪除並添加了答案 – Andreas 2009-11-12 10:35:41

回答

0

得到了解決:

var group_query = new Query<GroupPriority>(provider); 
    var items = from gp in group_query 
       where gp.Priority == 
        (from gp_sub in group_query 
        where gp_sub.Group == gp.Group 
        select gp_sub.Priority).Max() 
       select gp;