2009-08-17 17 views
0

LinqからSQLへの問合せを処理するのに問題があります。基本的には、特定の条件に一致する行のみの表の列の合計が必要です。簡易版はこれです:LINQ to SQL - WHEREを使用してSUMを選択

受注=製品が含まれているため OrderProductsために 製品です=リレーショナルテーブル含む製品=製品についてのテーブルの情報が含まれ

私はの数量の合計を得ることができますこのような製品:

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

(要求が受注ののIQueryableです)

しかし、私はまた、実際の製品メートル数量の合計を取得する必要があります一定の条件を満たしている。何かp.OrderProducts.Product.ProductAttribute =真

がどのように私はqtysの合計を取得するための追加の句で、そのクエリを取得しに行くかのように...

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

...ここでproductAttribute = true?ありがとう!

答えて

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)))) 
+0

完璧!本当にありがとう! – Ryan