この形式(Acc、sDate、Serial、Amount、...)のような6000000レコードの大きなテーブルがあります。Acc、date、serialはPKeyです。
私の問題を示すために、小さなコードを作成しました
public class Cheque
{
public string Account{ get; set; }
public string Serial{ get; set; }
public string StartDate { get; set; }
// ... public string Amount { get; set; } ...
}
var list = new List<Cheque>();
list.Add(new Cheque() { Account= "1", Serial = "1", StartDate = "20080120"});
list.Add(new Cheque() { Account= "1", Serial= "2", StartDate = "20080120" });
list.Add(new Cheque() { Account= "1", Serial= "3", StartDate = "20080120" });
list.Add(new Cheque() { Account= "1", Serial= "4", StartDate = "20080120" });
// each acc have 100 to 300 record per date ,for simplicity 3 obj added
list.Add(new Cheque() { Account= "1", Serial= "1", StartDate = "20110120" });
list.Add(new Cheque() { Account= "1", Serial= "2", StartDate = "20110120" });
list.Add(new Cheque() { Account= "1", Serial= "1", StartDate = "20120120" });
list.Add(new Cheque() { Account= "1", Serial= "2", StartDate = "20120120" });
list.Add(new Cheque() { Account= "1", Serial= "3", StartDate = "20120120" });
list.Add(new Cheque() { Account= "2", Serial= "1", StartDate = "20100417" });
list.Add(new Cheque() { Account= "2", Serial= "2", StartDate = "20100417" });
list.Add(new Cheque() { Account= "2", Serial= "1", StartDate = "20120314" });
list.Add(new Cheque() { Account= "2", Serial= "1", StartDate = "20070301" });
list.Add(new Cheque() { Account= "2", Serial= "1", StartDate = "20070301" });
list.Add(new Cheque() { Account= "2", Serial= "1", StartDate = "20070301" });
期待されるリストは、各アカウントからの最も近い日付で設定された 2 つだけです
会計シリアル日
"1", "1", "20120120" //first resultSet with Account= 1
"1", "2", "20120120"
"1", "3", "20120120"
"1", "1", "20110120" //second resultset with Account= 1
"1", "2", "20110120"
"2", "1", "20120314" //first resultSet with Account= 2
"2", "1", "20100417" //second resultset with Account= 2
"2", "2", "20100417"
plz は、linq を使用してこれをクエリする方法を教えてください。