2012-01-07 23 views
0

我有两个实体:骨料和使用之核心数据

  • 发票
  • 客户

我想通过客户分组发票的总和。

在阅读了一些网页,教程和Apple文档后,我不清楚使用Core Data的更好方法。

目前适用于我的解决方案是获取所有客户,并为每个客户再次提取仅发票金额。即使它工作完美,我不喜欢作为一个明确的解决方案。

也许使用NSExpressionDescription会是一个更好的方法,但是我真的不能很好地理解它。

我知道核心数据不是一个数据库,而在普通的SQL这是很容易的,但我使用的核心数据:-)

任何意见将欣赏:-)

感谢,

ps。我有Marcus Zarra核心数据书,但找不到解决方案/指导

回答

1

只要你的数据集不是太大,我建议只使用像[customer valueForKeyPath:@"@sum.invoices.amount"]之类的东西。如果您想尝试获得由数据库计算出的总和(核心数据大部分时间使用SQLite作为其后端),请查看http://iphonedevelopment.blogspot.com/2010/11/nsexpression.html

+0

valueForKeyPath与NSPredicate一起使用?在某些情况下,我想在某些日期限制@sum – mongeta 2012-01-07 11:43:47

+0

否,那么您必须先过滤发票数组,然后应用sum函数。 – MrMage 2012-01-07 15:45:32

+0

使用您的方法有什么好处?目前我正在为每个客户提取价值,并按日期过滤。 – mongeta 2012-01-07 19:31:10