LINQ to SQL - 使用WHERE选择SUM

时间:2009-08-17 14:51:46

标签: asp.net vb.net linq-to-sql sum

我无法使Linq to Sql查询正常工作。基本上,我希望表中的列的总和仅用于匹配特定条件的行。简化版本是:

订单=包含产品的订单 OrderProducts =包含订单中产品的关系表 Products =包含产品信息的表格

我可以得到这样的产品数量的总和:

Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))

(请求是一个可以订购的IQ)

但是我还需要得到实际产品满足特定条件的数量之和。有点像...

        Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))  

... WHERE p.OrderProducts.Product.ProductAttribute = true

我如何使用附加的where子句获取该查询,以获取productAttribute = true的qtys之和?谢谢!

1 个答案:

答案 0 :(得分:0)

Dim totalQty = requests _
    .Sum(Function(p) p.OrderProducts _
        .Where(Function(q) q.Product.ProductAttribute = true) _
        .Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))