基于组值的查询选择

时间:2015-01-27 18:27:48

标签: vb.net entity-framework

我正在使用VB.net,实体框架6和sql server 2008R2,我需要帮助创建一个查询。 我有一个表:MyTable1有这样的结构:

ID.....group.........vl1
1........1...........7
2........1...........8
3........1...........3
4........2...........2
5........2...........4

我想只选择那些组的vl1总值超过10的行。 对于上面的例子,我们有:

Group=1  Vl1 ( total) = 7+8+3=18
Group=2  Vl1 ( total) = 2+4=6

因此组1的值超过10,因此应选择具有组= 1的所有行。 group2的值为6,因此不应选择具有group = 2的所有行。

如何构建此类查询?

谢谢!

编辑: 我尝试这个查询但是没有工作:

 Dim query as IEnumerable (OF MyTable)
 Query = From t In context.MyTables
         Group By t.group Into Group
         Select Group Where Group.Sum(Function(t2) t2.vl1) > 10

1 个答案:

答案 0 :(得分:0)

我认为你想要这样的东西,虽然可能有更好的方法来构建它:

Dim query =
    From t In context.MyTables
    Group By t.group Into g = Group
    Where g.Sum(Function(x) x.vl1) > 10
    From t2 In g
    Select t2

From t2 in g Select t2部分正在为满足SelectMany子句的每个组执行Where