1
我有一個包含帳戶餘額歷史的表。我想編寫一個返回每個賬戶最後餘額的Linq查詢。Linq獲取每個元素的最近日期(或最大值)
此時此刻我使用此查詢:
var lastDate = AccountBalances.Max(y => y.BalanceDate);
var listOfBalance = AccountBalances.Where(y => y.BalanceDate == lastDate).ToList();
listOfBalance.Dump(); // FYI I use LinqPad
但這並不是corretc因爲我不執行每個計算每天帳戶。每個賬戶可以有不同的最後餘額。
例子:
AccountNumber | BalanceDate | Value
----------------------------------------
1234-0001 | 2017-08-08 | 100
1234-0002 | 2017-08-08 | 250
1234-0003 | 2017-08-08 | 500
1234-0004 | 2017-08-08 | 150
1234-0001 | 2017-08-09 | 110
1234-0002 | 2017-08-09 | 230
1234-0003 | 2017-08-09 | 400
1234-0001 | 2017-08-10 | 120
1234-0002 | 2017-08-10 | 210
我的查詢返回此
AccountNumber | BalanceDate | Value
----------------------------------------
1234-0001 | 2017-08-10 | 120
1234-0002 | 2017-08-10 | 210
但應該返回
AccountNumber | BalanceDate | Value
----------------------------------------
1234-0001 | 2017-08-10 | 120
1234-0002 | 2017-08-10 | 210
1234-0003 | 2017-08-09 | 400
1234-0004 | 2017-08-08 | 150