Intersystems Cache:聚合函数不能在WHERE或GROUP BY子句

时间:2018-05-03 10:53:59

标签: sql intersystems-cache

我正在学习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子句中使用

任何帮助表示感谢。

格拉西亚斯

1 个答案:

答案 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;