计算每月使用LINQ发出的总数

问题描述 投票:0回答:1

我正在做一个示例项目,它计算条形图中每个月显示的总问题。

这是我正在使用的SQL查询

SELECT 
 SUM(CASE datepart(month,D_ISSUE) WHEN 1 THEN 1 ELSE 0 END) AS 'Jan',
 SUM(CASE datepart(month,D_ISSUE) WHEN 2 THEN 1 ELSE 0 END) AS 'Feb',
 so on...
FROM EMP_MEMOS 

有人可以帮我将此SQL查询转换为LinQ代码。我仍在尝试了解其工作原理

到目前为止,这是我的代码,但是我仍然无法正常工作。

public ActionResult MonthCount()
{
    var Monthly = (from f in db.EMP_MEMOS
                  group f by new { month = f.D_ISSUE, year = f.D_ISSUE } into g
                  orderby g.Key.year
                  select new
                  {
                      dt = string.Format("{0}/{1}", g.Key.month, g.Key.year),


                  }).ToList();

    return Json(new { result = Monthly }, JsonRequestBehavior.AllowGet);
}
sql linq
1个回答
0
投票

我已经有了答案,可以在这里分享:

       public ActionResult CountMonth()
        {
            var memo = from t in db.EMP_MEMOS
                        select new
                        {
                             t.D_ISSUE.Value.Month,
                             t.D_ISSUE.Value.Year
                        };
            var res = from s in memo
                      group s by new { s.Year, s.Month } into g
                      select new
                      {
                          Period = g.Key,
                          MemoCount = g.Count(),
                      };
            return Json(new { result = res }, JsonRequestBehavior.AllowGet);
        }
© www.soinside.com 2019 - 2024. All rights reserved.