日期:2014-05-20  浏览次数:20928 次

请问linq一对多怎么写 多的只取一个字段的sum值
有几个表,前几个表都是内联,最后一个表是左联前面的表,并且sum最后一个表的 sumMonery字段,求解?

最后是能给我写个例子,谢谢!!因为左连接 内连接 多了我也不太熟悉

------解决方案--------------------
C# code

//代码手打,提供思路参考
var query=(from a in dbo.View_AdviceNoteRightTable 
          join b in dbo.AdviceNoteLinkTable.Where(x=>x.PayType == 42) on a.AdviceID equals b.AdviceID  
          join c in dbo.OverWeightRec on b.PayReturnID equals c.ID
          join d in dbo.ContractSubPutPayment.Where(y=>y.PayType == 2)  on c.ID equals d.RPID into t
          from d in t.DefaultIfEmpty()
          group new {a,b,c,d} by new{a.AdviceID,a.AdviceState,c.ID,c.OverWeightDate,c.OverWeightCount} into g
          select new {
            AdviceID=g.Key.AdviceID,
            AdviceState=g.Key.AdviceState,
            ID=g.Key.ID,
            OverWeightDate=g.key.OverWeightDate,
            OverWeightCount=g.Key.OverWeightCount,
              SumMonery=g.Sum(z=>z.PayMoney)
             }).OrderBy(s=>s.ID);

------解决方案--------------------
你再仔细看看