我正在使用 Jaspersoft 的 iReport 创建一个报告,该报告将从我的维护助手 CMMS 数据库中提取数据。数据库位于本地主机上,我没有创建任何表或列。MA CMMS 负责这一点。我只想提取数据以安排在报告中。
这是我的代码:
SELECT *
FROM "tblworkordertask"
WHERE "dbltimespenthours" > 0
AND "dtmdatecompleted" BETWEEN $P{DATE_FROM} AND $P{DATE_TO}
GROUP BY "intworkorderid"
和我的错误:
原因:java.sql.SQLSyntaxErrorException:列引用“tblWorkOrderTask.id”无效,或者是无效表达式的一部分。对于带有 GROUP BY 的 SELECT 列表,被选择的列和表达式只能包含有效的分组表达式和有效的聚合表达式。
我不知道为什么错误是指“tblWorkOrderTask.id”,因为我没有这样的列,也没有要求该列。
如果我取出 group by 子句,它可以正常工作,但正如您所料,我会得到具有相同 WorkOrderID 的多个结果。我想按此列分组,然后统计结果。我尝试使用 SELECT DISTINCT,但随后我收到有关未选择的列的错误。