【问题标题】:Get Records From Parent Table Based On Relationship Table - CoreData根据关系表从父表中获取记录 - CoreData
【发布时间】:2011-06-27 13:51:17
【问题描述】:

对不起,如果标题没有任何意义。

让我再解释一下。

我有这个 CoreData 应用程序,而且我在 CoreData 方面相对较新。我有两张桌子。一个是预算,一个是支出。所以预算表有一个名为 TotalBudget 的字段。现在我在支出表中有不同的行,用户在一段时间内输入了这些行,并且该表有一个名为“个人支出”的字段。

现在我希望做的是只获得那些个人支出总和小于 TotalBudget(预算表)的预算。在 SQL 语言中,它会像下面这样

选择预算名称 从预算 其中 TotalBudget

如何在核心数据中实现这一点?我有从一个表中检索数据的代码,我可以使用 NSPredicate 来过滤基于 BudgetStartDate 和 BudgetEndDate 的记录,但我怎样才能实现这样的目标。

谢谢

【问题讨论】:

    标签: objective-c ios core-data nspredicate nsfetchrequest


    【解决方案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:@"spend.@sum.amount > amount"];
    
    NSError *error = nil;
    NSArray *results = [context executeFetchRequest:fr error:&error];
    if (error) {
      NSLog(@"ERROR: %@", error);
    }
    NSLog(@"Results: %@", results);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      相关资源
      最近更新 更多