0

コアデータによってテーブルから name,eMail,mobileNo,sum(amount) を取得するという私の要件。

SQL を使用する場合、SQL クエリは次のようになります。

  select name,eMail,mobileNo,sum(amount)  amt1 from T1 GROUP BY name,eMail,mobileNo;

ここで私は正しい結果を得ています。

コアデータについても同じことが言えます。

GROUP BY name を指定することで、name と SUM(amount) を取得できます。そのために以下のコードを用意しました。

[request setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];

コア データの Group by に複数の属性を追加する方法がわかりません。誰でもそれを行うのを手伝ってもらえますか。

 NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Entity1" inManagedObjectContext:context];

 NSAttributeDescription* statusDesc = [entityDesc.attributesByName objectForKey:@"name"];


NSExpression *sumExpression = [NSExpression expressionForFunction:@"sum:" arguments:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:@"totalAmount"]]];

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc]init];
[expressionDescription setName: @"sumTot"];
[expressionDescription setExpression: sumExpression];
[expressionDescription setExpressionResultType:NSDecimalAttributeType];


NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];

[request setPropertiesToFetch:[NSArray arrayWithObjects:@"name",expressionDescription, nil]];
[request setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];
[request setResultType:NSDictionaryResultType];

NSError *error = nil;
myArray = [context executeFetchRequest:request error:&error];
4

1 に答える 1