2016-04-20 3 views
0

私はこのSQLクエリを持っており、それをlinqに変換したいと思います。groupbyクエリをlinqに変換し、実行中に他のものを計算する方法は?

最後の日付を確認したい場合は、最新のものを「ライブ」とマークする必要がありますか?

+0

最終日時はどのように決定されますか?最後の日付は現在の月または年になりますか? – Viru

+0

さて、どのようにlinqにそのクエリを変換するには? – Nil

+0

最大日付、最大日付と現在日付の間のdffが10日を超える場合、その日付は最新ではありません。 – Nil

答えて

2

DataTableに結果をコピーするため、このクエリはSqlクエリで指定された内容を実行し、結果をDataTableにコピーします。

DataTable dt = new DataTable(); 

dt.Columns.Add("Scheme_Code", typeof(string)); 
dt.Columns.Add("Scheme_Name", typeof(string)); 
dt.Columns.Add("FundFamily", typeof(string)); 
dt.Columns.Add("LastDate", typeof(DateTime)); 

var table = MFDatas.GroupBy(g=> new { Scheme_Code, Scheme_Name, FundFamily}) 
        .Select(s=> 
        { 
         var row = dt.NewRow(); 
         row["Scheme_Code"] = s.Key.Scheme_Code, 
         row["Scheme_Name"] = s.Key.Scheme_Name, 
         row["FundFamily"] = s.Key.FundFamily, 
         row["LastDate"] = s.Max(m=>m.Date) 
        })     
        .OrderBy(o=>o.Field<string>("Scheme_Code")) 
        .Distinct() 
        .CopyToDataTable(); 
+0

最大日付、最大日付と現在日付の間のdffが10日を超える場合、その日付は最新ではありません。 – Nil

+0

クエリのおかげで、結果を取得してテーブルに保存する方法はありますか? foreachとvar? – Nil

+0

新しいブロックにいくつかのエラーがありましたので、 "var v = db.MFData.GroupBy(x => new {Scheme_Name = x.Scheme_Name、Scheme_Code = x.Scheme_Code、FundFamily = x.FundFamily、日付= x.Date}) .Select(グループ=>新しい {Scheme_name = group.Key.Scheme_Name、 Scheme_Code = group.Key.Scheme_Code、 FundFamily = group.Key.FundFamily、 日付= group.Key .Date })は、「それは – Nil

関連する問題