Linq查询List集合


select DYear,DJiDu,SerialNum,sum(DMoney) as DMoney
from
(
 select YEAR(DFeiYongDate) as DYear,(MONTH(DFeiYongDate)+2)/3 as DJiDu,SerialNum,DMoney
  from uWZCWFeiYongDetailTest
 )as TotalT
group by SerialNum,Dyear,DJiDu

 

中间部分:

select YEAR(DFeiYongDate) as DYear,(MONTH(DFeiYongDate)+2)/3 as DJiDu,SerialNum,DMoney
  from uWZCWFeiYongDetailTest

对应的linq

var ldt = from c in listDetail
                         select new
                         {
                             DYear = c.DFeiYongDate.Value.Year,
                             DJiDu = (c.DFeiYongDate.Value.Month + 2) / 3,
                             c.SerialNum,
                             c.DMoney
                         };

完整内容

 var ldt = from tc in
                              (
                                  from c in listDetail
                                  select new
                                  {
                                      DYear = c.DFeiYongDate.Value.Year,
                                      DJiDu = (c.DFeiYongDate.Value.Month + 2) / 3,
                                      c.SerialNum,
                                      c.DMoney
                                  }
                              )
                          group tc by new { tc.DYear, tc.DJiDu, tc.SerialNum } into newtc
                          select new
                          {
                              DYear = newtc.Key.DYear,
                              DJiDu = newtc.Key.DJiDu,
                              SerialNum = newtc.Key.SerialNum,
                              DMoney = newtc.Sum(newtctemp => newtctemp.DMoney)
                          };

posted @ 2015-12-25 15:06  花影疏帘  阅读(490)  评论(0)    收藏  举报