系统间缓存:聚合函数不能用在 WHERE 或 GROUP BY 子句中

Intersystems Cache: An aggregate function cannot be used in a WHERE or GROUP BY clause

我正在学习 Intersystems Cache 并具有以下功能,我基于代码 运行 产品的早期版本(我是 17.2)。

Query dueToday(rToday As DType.Date) As %SQLQuery(ROWSPEC = "Book:User.Books,RefNo:%Integer")
{
    SELECT BookODue.Rent, BookODue.RefNo
      FROM BookODue
      LEFT JOIN BookTran
      ON BookODue.Rent = BookTran.Rent
      WHERE (BookODue.AuditDate = :rToday) AND (MAX(BookTran.TranDate) < :rToday)
}

当我编译这个时,我得到

An aggregate function cannot be used in a WHERE or GROUP BY clause

感谢任何帮助。

谢谢

我可以推测你真的想要:

SELECT bo.Rent, bo.RefNo
FROM BookODue bo JOIN
     BookTran bt
     ON bo.Rent = bt.Rent
WHERE bo.AuditDate = :rToday
GROUP BY bo.Rent, bo.RefNo
HAVING MAX(bt.TranDate) < :rToday;