Linq在一个表中获取父项和子项,并在另一个表中计算它们的值

时间:2017-11-15 06:00:34

标签: c# mysql asp.net-mvc linq

我有两张桌子:

ParentID | ChildID  
--------   -------  
91209      91210   
91209      91211
91212      91213
91212      91214
RecordID | Quantity 
--------   ---------
91209      1500
91210      2500
91211      7200
91212      6000
91213      5000
91214      6000

我希望结果是:

RecordId | Total Quantity
--------   --------------
91209      11200
91212      17000

我尝试了一些复杂的连接查询,但我似乎无法获得我需要的结果。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设表名为acc。

var parentRecords = records.Select(x => 
        new Record { RecordID = parents.FirstOrDefault(y => y.ChildID == x.RecordID || y.ParentID == x.RecordID).ParentID, Quantity = x.Quantity});

    var result = parentRecords.GroupBy(z => z.RecordID,
        (key, value) => new { RecordID= key, TotalQuantity= value.Sum(a => a.Quantity) });