2011-06-27 184 views
0

对不起,如果标题没有任何意义。基于关系表从父表中获取记录 - CoreData

让我再解释一下。

我有这个CoreData应用程序,我在CoreData中是比较新的。我有两张桌子。一个是预算,一个是支出。所以预算表中有一个名为TotalBudget的字段。现在我在Spending Table中有不同的行,这是用户输入的时间,此表中有一个名为Individual Spend的字段。

现在我所希望做的只是获得单个支出总和小于TotalBudget(预算表)的预算。在SQL语言它会像下面

选择BudgetName 从 预算凡TotalBudget <(SELECT SUM(IndividualBudget)从支出凡BudgetID = Budget.BudgetID)

我怎样才能做到这一点的核心数据?我有代码从一个表中检索数据,我可以使用NSPredicate根据BudgetStartDate和BudgetEndDate过滤记录,但我怎么能实现这样的。

感谢

回答

1

假设以下对象模型:

Budget 
--amount (decimal) 
--spend (relationship to IndividualSpend object) 

IndividualSpend 
--amount (decimal) 

这将让你的预算实体的数组,其中在支出金额为>预算金额:

NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
fetch.entity = [managedObjectModel objectForKey:@"Budget"]; 
fetch.predicate = [NSPredicate predicateWithFormat:@"[email protected] > amount"]; 

NSError *error = nil; 
NSArray *results = [context executeFetchRequest:fr error:&error]; 
if (error) { 
    NSLog(@"ERROR: %@", error); 
} 
NSLog(@"Results: %@", results); 
+0

非常感谢。完善! – Leo