2011-06-27 12 views
0

タイトルが意味をなさない場合は申し訳ありません。リレーションシップテーブル - CoreDataに基づいて親テーブルからレコードを取得

もう少し詳しく説明しましょう。

私はこのCoreDataアプリケーションを持っています。私はCoreDataで比較的新しいです。私は2つのテーブルを持っています。 1つは予算で、1つは支出です。そのため、BudgetテーブルにはTotalBudgetというフィールドがあります。今、私は時間をかけてユーザーが入力し、このテーブルにIndividual Spendと呼ばれるフィールドがある支出テーブルに異なる行があります。

今私がやってみたいのは、Individual Spendの合計がTotalBudget(予算表)よりも小さい予算だけを取得することです。 SQL言語では、それはTotalBudget <(支出BudgetID = Budget.BudgetIDからの和(IndividualBudget)を選択)

がどのように私はコアデータでそれを達成することができます予算 から

以下のようなものを選択しBudgetName でしょうか? 1つのテーブルからデータを取得するコードがあり、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

関連する問題