【问题标题】:Aggregate and sum using Core Data使用 Core Data 进行聚合和求和
【发布时间】:2012-01-07 06:51:24
【问题描述】:

我有两个实体:

  • 发票
  • 客户

我想获取按客户分组的发票总和。

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

当前适用于我的解决方案是获取所有客户,并且对于每个客户,再次仅获取发票总和。即使它运行良好,我也不喜欢作为最终解决方案。

也许使用 NSExpressionDescription 会是一种更好的方法,但我真的不太了解它,无法使用它。

我知道 Core Data 不是数据库,在纯 SQL 中这很容易,但我使用的是 Core Data :-)

任何建议将不胜感激:-)

谢谢,

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

【问题讨论】:

    标签: iphone core-data


    【解决方案1】:

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

    【讨论】:

    • valueForKeyPath 与 NSPredicate 一起使用吗?在某些情况下,我想在某些日期限制@sum
    • 不行,那你得先过滤发票数组,再应用求和函数。
    • 使用你的方法有什么好处?目前我正在获取每个客户的值,按日期过滤。
    • 它可能会稍微优雅一些​​,但原则上你所做的就可以了。
    • 好的,谢谢,所以我想没有简单的等价物 SELECT customer.name, sum(invoice.total) FROM invoices UNION customers ON ... WHERE invoice.date > .... ?
    猜你喜欢
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2018-03-27
    • 2015-09-23
    相关资源
    最近更新 更多