public static void Main()
new Parent { TransactionId = 1, PayAmount = 1000},
new Parent { TransactionId = 2, PayAmount = 3000},
new Parent { TransactionId = 3, PayAmount = 5000},
new Parent { TransactionId = 4, PayAmount = 6000}
new Child { Id = 1, TransactionId = 1, DepositAmount=600},
new Child { Id = 2, TransactionId = 1, DepositAmount=400},
new Child { Id = 3, TransactionId = 2, DepositAmount=1000},
new Child { Id = 4, TransactionId = 2, DepositAmount=1000},
new Child { Id = 5, TransactionId = 2, DepositAmount=1000},
new Child { Id = 6, TransactionId = 3, DepositAmount=2000}
var dueParents = parents.Where(parent => parent.PayAmount > children.Where(child => child.TransactionId == parent.TransactionId).Sum(child => child.DepositAmount));
foreach (var due in dueParents)
Console.WriteLine(due.TransactionId);
public int TransactionId{get;set;}
public decimal? PayAmount{get;set;}
public int TransactionId {get;set;}
public decimal? DepositAmount {get;set;}