You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 使用Linq按月份分组统计数据的查询修改方案

解决方案

核心修改逻辑为调整Linq的分组键,将原来的完整GORUSME_TARİH字段替换为按年+月维度分组,同时直接统计分组内的记录总数赋值给CVCOUNT即可,修改后的完整代码如下:

public class CVExcelMulakatList
{
    public string CV_STATU { get; set; }
    public string GORUSMETARIHI { get; set; }
    public string YAKADURUMU { get; set; }
    public int CVCOUNT { get; set; }    
}

public ActionResult GetMulakatList(List<int> idList)
{
    MULAKATDBEntities1 db = new MULAKATDBEntities1();
    idList = idList.OrderByDescending(p => p).Take(750).ToList();
    List<string> list = new List<string>() {"Olumsuz", "Olumlu", "Beklemede"};
    
    var mulakatList = (from e in db.CV
                       // 可选:如果面试日期可能为空,可新增过滤条件避免报错
                       // where e.GORUSME_TARİH != null
                       where list.Contains(e.CV_STATU) && idList.Contains(e.ID_CV)
                       // 修改分组键:按状态、年月、YAKADURUMU三个维度分组
                       group e by new 
                       { 
                           e.CV_STATU, 
                           e.YAKADURUMU, 
                           e.GORUSME_TARİH.Year, 
                           e.GORUSME_TARİH.Month 
                       } into gcs
                       select new CVExcelMulakatList
                       {
                           CV_STATU = gcs.Key.CV_STATU,
                           YAKADURUMU = gcs.Key.YAKADURUMU,
                           // 格式化输出为 年-月 格式,可根据需要调整展示格式
                           GORUSMETARIHI = $"{gcs.Key.Year}-{gcs.Key.Month:D2}",
                           // 统计分组内总记录数
                           CVCOUNT = gcs.Count()
                       }).ToList();
    // 后续接导出Excel的逻辑即可
    return ...;
}

如果不需要区分年份,仅需要按1-12月合并统计所有年份同月份的数据,直接删除分组键里的Year字段即可。

内容的提问来源于stack exchange,提问作者Hakan özel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:54:00