我设置了实体Student
和Attendance
,其中学生可以有很多出勤率,每个出勤者只能有一个学生。每次出席都有一个名为attendanceAt
的日期,代表出席日期。
Attendance<->>Student
我想对Students
进行查询,以便抓住所有在两个日期之间出勤的学生。我还希望最后的出勤方向是&#34;在&#34;。
这是我到目前为止所得到的:
我可以使用@max。
检查两个日期之间的最近出席情况NSPredicate(format: "attendances.@max.attendanceAt < %@ AND attendances.@max.attendanceAt > %@", date1! as CVarArg, date2! as CVarArg)
我的问题是attendances.@max.attendanceAt
返回日期而不是出勤实体。因此,我不能做attendances.@max.attendanceAt.direction == "in"
我也试过像SUBQUERY()
一样搞乱:
NSPredicate(format: "SUBQUERY(attendances, $att,
$att.attendanceAt < %@
AND $att.attendanceAt > %@
AND $att.attendanceAt == attendances.@max.attendanceAt
AND $att.direction == %@
).@count > 0",
date1! as CVarArg, date2! as CVarArg, "in")
哪个确实有效,无论何时我尝试在SUBQUERY中使用@max进行任何操作,应用程序崩溃。
关于如何用NSPredicate完成我想要的任何想法?