Первый постер, давний читатель / искатель!
Я пытаюсь вернуть информацию из подзапроса через отношение CoreData «один ко многим». У меня есть две сущности: Клиенты и Сообщения. Каждый клиент может иметь несколько сообщений.
Я пытаюсь вернуть номер счета из таблицы «Клиенты» для каждого клиента, у которого есть сообщение типа «Temp-Stop» с датой вступления в силу, которая меньше даты завтрашнего дня.
Я пытался использовать комбинации ЛЮБОЙ и НЕТ, без подзапросов, но обнаружил, что они работают не так, как я хотел. Наконец, я прибег к подзапросу.
Как показано ниже, он возвращает количество клиентов с прошедшими временными остановками, но вместо этого мне нужен номер счета этих клиентов. Чтобы было ясно, конечная цель состоит в том, чтобы определить, есть ли у клиента также сообщение типа «Перезапуск» до завтрашней даты. Это означает, что они больше не останавливаются и должны быть включены в список активных клиентов.
(изображение здесь, но я не могу опубликовать его, потому что я новый пользователь)
NSPredicate *predTemps = [NSPredicate predicateWithFormat:@"SUBQUERY(messages, $m, $m.effective < %@ && $m.type == 'Temp Stop').@count > 0", tomorrow];
Приведенный выше предикат возвращает количество клиентов с прошедшими временными остановками. Я также могу ссылаться на номер счета в подзапросе в качестве третьего условия, но я хочу вернуть номер счета , а не указывать их.
NSPredicate *predTemps = [NSPredicate predicateWithFormat:@"SUBQUERY(messages, $m, $m.effective < %@ && $m.type == 'Temp Stop').account", tomorrow];
Это было бы именно то, что я хочу - это не работает, хотя. Мне не ясно, как именно реализовать подзапросы, поэтому, возможно, есть и другое решение.
Большое спасибо!