繁体   English   中英

为什么这个 linq 查询不返回不同的代码?

[英]Why this linq query doesn't return distinct code?

我想要所有唯一 Scheme_Codes 的列表,但我无法编写查询。 我试过这个,但我很困惑这个查询有什么问题。

 var queryresult = db.MFData.GroupBy(x => new { Scheme_Name = x.Scheme_Name, Scheme_Code = x.Scheme_Code, FundFamily = x.FundFamily, Date = x.Date })
                   .Select(group => new
                   {
                       Scheme_name = group.Key.Scheme_Name,
                       Scheme_Code = group.Key.Scheme_Code,
                       FundFamily = group.Key.FundFamily,
                       Date = group.Max(x => x.Date),
                       count = group.Select( x =>  x.Scheme_Code).Distinct().Count()
                   }
                   ).OrderBy(x => x.Scheme_Code);

我有这个查询,但我不知道如何将其转换为 linq

SELECT [Scheme_Code],[FundFamily],[Scheme_Name],
 MAX([Date]) as LastDate   
 FROM [MFD].[dbo].[MFDatas]   
 GROUP BY [Scheme_Code],[Scheme_Name], [FundFamily]  
 ORDER BY [Scheme_Code]

您所要做的就是从 groupby 子句中省略日期:

var queryresult = db.MFData.GroupBy(x => new 
    { 
        Scheme_Name = x.Scheme_Name, 
        Scheme_Code = x.Scheme_Code, 
        FundFamily = x.FundFamily 
    }).Select(group => new
    {
        Scheme_name = group.Key.Scheme_Name,
        Scheme_Code = group.Key.Scheme_Code,
        FundFamily = group.Key.FundFamily,
        Date = group.Max(x => x.Date),
        count = group.Select(x => x.Scheme_Code).Distinct().Count()
    }).OrderBy(x => x.Scheme_Code);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM