系统间缓存:聚合函数不能用在 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;
我正在学习 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;