2012-02-17 2 views
0

에 어린이 값의 합을받는 방법이 내가 가지고있는 구조입니다 :하나 LINQ

프로그램 - 설명, 등 ...

액션 - Program_Id, 설명 등 ..

비용 -의 action_id, 값 1, 값, VALUE3

하나 조치은 복수가있을 수 있습니다 비용은입니다. 필요한 것은이 값을 프로그램별로 그룹화하는 쿼리입니다. Like :

"프로그램 이름"| 총 가치 1 | 총 가치 2 | 프로그램

총이 내 노력은 지금까지입니다 :

var ListByPrograma = from a in db.Actions 
    join c in db.Costs on a.Id equals c.Action_Id 
    group a by a.Program into p 
    select new 
    { 
     Program = p.Key, 
     actionsQuantity = p.Count(), 
     totalValue1 = p.Costs.???? 
     totalValue2 = ?, 
     totalByProgram = ? 
    }; 

답변

2

합니까이 작품처럼 뭔가?

var ListByPrograma = from a in db.Actions 
join c in db.Costs on a.ID equals c.Action_Id 
group new {a,c} by a.Program into p 
select new 
{ 
    Program = p.Key, 
    actionsQty = p.Count (), 
    totalValue1 = p.Sum(y => y.c.Value1), 
    totalValue2 = p.Sum (y => y.c.Value2), 
    totalValue3 = p.Sum(y=>y.c.Value3) 
}; 
+0

총 3 개의 값은? –

+0

내 컴퓨터가 가까이에 있지는 않지만,'totalTotal = p.sum (y => ycValue1) + p.sum (y => ycValue2) + p.Sum (y => ycValue3);' * 작동해야하는 것 같습니다. – Robaticus