2009-11-10 106 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;