-3

Id(PK)、CustomerId(FK)、AccountNumberのマスターテーブルAccountがあります。

顧客は「n」個のアカウントを持つことができます。

Account
--------
1   |   1   |  93839200
2   |   1   |  93839201
3   |   1   |  93839202
4   |   2   |  93839200

もう1つのテーブルは、Id(PK)、AccountId(FK)、status、およびstatusDateを含むAccountStatusです。

AccountStatus 
--------------
1 | 1 | Created | 1/1/2013
2 | 1 | Verified| 2/1/2013
3 | 2 | Created | 9/1/2013
4 | 2 | Rejected| 11/1/2013
5 | 2 | Deleted | 12/1/2013
6 | 3 | Deleted | 12/1/2013

アカウントのSatusは、ステータス日付とともにこのテーブルに挿入されます。

CustomerIDの最新の銀行ステータスを選択するには、Linqステートメントが必要です。

つまり、CustomerIDを1として渡す場合、次のようなBankAccountの最新のステータスを取得する必要があります。

2 | 1 | Verified| 2/1/2013
5 | 2 | Deleted | 12/1/2013
6 | 3 | Deleted | 12/1/2013
4

1 に答える 1

0
var results = from a in Accounts
              join s in AccountStatuses on a.ID equals s.AccountID
              group new { a, s } by a.CustomerID into g
              let i = g.OrderByDescending(i => i.s.StatusDate).FirstOrDefault()
              select new
              {
                  AccountId = i.a.ID,
                  CustomerID = i.a.CustomerID,
                  Status = i.s.Status,
                  StatusDate = i.s.StatusDate
              };
于 2013-03-20T10:55:44.257 に答える