2014-06-25 14 views
0

我有核心數據與實體(扣除)它有三個屬性第一個(deductionName)第二個(扣除狀態),最後一個是(扣除額)。現在我如何在覈心數據中獲得SUM

我想獲得的(deductionAmount)的總和,如果(deductionStatus)== 1

(deductionStatus)是一個布爾值。

return [[[self.fetchedDeductionData fetchedObjects] valueForKeyPath:@"@sum.deductionAmount"]floatValue]; 

回答

1

顯而易見的解決方案是隻取了deductionAmount,做自己的總和(因爲我真的不認爲有做一些SQLite的之間的差異,你做的總和):

// build your NSFetchRequest 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deductionStatus == 1"]; 
[request setPredicate:predicate]; 
[request setResultType:NSDictionaryResultType]; 
[request setPropertiesToFetch: [NSArray arrayWithObjects:@"deductionAmount", nil]]; 

// execute fetch request 

// iterate through the array 
CGFloat sum = 0; 
for (NSDictionary *dictionary in fetchedResults) { 
    NSNumber *amount = [dictionary objectForKey:@"deductionAmount"]; 
    sum = sum + [amount doubleValue] 
} 
+0

' NSInteger x = [[self.fetchedDeductionData fetchedObjects] count]; float sum = 0;對於(int y = 0; y NamshanNet

+1

如果您不需要索引,for-in循環更快,則不要使用count和old for-loop遍歷數組。 –