我正在学习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)
}
当我编译这个时,我得到了
聚合函数不能在WHERE或GROUP BY子句中使用
任何帮助表示感谢。
格拉西亚斯
答案 0 :(得分:1)
我可以推测你真的想要:
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;