Я уверен, что нет никакого способа заставить CD выполнять произвольный SQL. Если вы действительно настойчивы, попробуйте перейти прямо в SQLite. Он поддерживает все то, что вы хотите сделать.

способы написать некоторые базовые запросы в CoreData, и в документации нет примеров. Следующий мой запрос:

У меня есть объект Expense, и у него есть поле CostAmount.Расход может быть связан с объектом ExpenseCategory.ExpenseCategory может просто определять категорию для расходов (например, для продуктов питания) или может иметь единичную ставку (например, для пробега). Если это просто имя, то значение расхода - это costAmount в объекте Expense, в противном случае это - CostAmount * unitRate в ExpenseCategory.Поскольку ссылка «Расход на категорию» является необязательной, окончательные расходы будут основаны на наличии / отсутствии категории и удельной стоимости.

Таким образом, SQL-запрос для расчета общих затрат будет:

select
    TOTAL(e.amount * IFNULL(c.rate, 1))
from EXPENSE e
LEFT OUTER join CATEGORY c on
    e.category = c.id

Как это можно сделать в CoreData?

Ответы на вопрос(1)

Ваш ответ на вопрос