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

这个linq语句怎么写
本帖最后由 q107770540 于 2013-12-16 09:26:01 编辑
两张表
第一张表yuang
字段
id
name             姓名

第二张表xiujia
id
gongxiu         休假
chanjia         其它假


想根据第一张表的name分别统计一下gongxiu列和chanjia列的和

------解决方案--------------------
yuang.Select(x => new { 休假 = xiujia.Where(y => y.id == x.id).Sum(y => y.gongxiu), 其它假 =  xiujia.Where(y => y.id == x.id).Sum(y => y.chanjia) })
------解决方案--------------------
var query= from y in yuang
           join x in xiujia on y.id equals x.id into lf
           from x in lf.DefaultIfEmpty()
           group y by y.name into g
           select new {g.Key,gongxiu=g.count(s=>s.gongxiu),chanjia=g.Count(s=>s.chanjia)};