2016-04-20 6 views
-2

すべての一意のScheme_Codesのリストが必要ですが、クエリを書き込めません。私はこれを試しましたが、このクエリーに何が問題なのか混乱しています。なぜこのlinqクエリが別のコードを返さないのですか?

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] 
+1

両方のクエリが異なっています –

+0

現在のソリューションで発生している「特定の問題またはエラー」を追加してください。間違いはありますか?はいの場合はどちらですか?それは間違った結果を返しますか?はいの場合は、実際の結果と期待される結果は何ですか? – Heinzi

+0

最後のSQLクエリをlinqに変換したい。私は最初のものを書きました。私はdiff出力を得ています。私は2番目のSQLクエリをlinqに変換したい。私はすべてのユニークなscheme_codesが欲しいですが、linqは何かdiffを与えます – Nil

答えて

1

にこれを変換する方法を確認していないあなたがしなければならないのは、あなたの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); 
+0

ありがとう!これを最適化する他の方法クエリ?実行には10分以上かかります – Nil

関連する問題