2012-02-22 10 views
1

の詳細テーブルから最後の行を選択する私たちは、この中で2つのテーブル、我々はMEMBERID、名前などのすべてのメンバーの詳細情報を持っている。この表で各ユーザー

  1. tbl_members 、年齢など

  2. tbl_payment を持っていますpaymentId、memberId、PaymentDateなどのお支払いの詳細がすべて表示されます

私たちはすべてのユーザーの最後の支払いのみを表示する日付と金額

Name PaymentDate Amount 
---------------------------- 
Row1 12/12/2011 1200 
Row2 12/18/2011 100 
Row3 12/16/2011 99 
Row4 12/08/2011 1500 

これはどのようにしてlinqを使って行うことができますか?

答えて

0

ユーザーごとの支払いをグループ化し、PaymentDateでトップエレメントを選択するには、グループ化を使用する必要があります。その質問を見てください:Linq - Top value form each group

tbl_payment.GroupBy(p => p.memberId).Select(g => g.Order(p => p.PaymentDate).First()) 
0

ような何か:

Members.Select(c => new 
{ 
    Member = m, 
    LastPayment = m.Payments.OrderByDescending(p => p.PaymentDate).FirstOrDefault() 
}) 
.Select(x => new { x.Member.Name, x.LastPayment.PaymentDate, x.Payment.Amount }) 
関連する問題