【发布时间】:2013-03-12 17:29:22
【问题描述】:
我正在使用 Jaspersoft 的 iReport 创建一个报告,该报告将从我的 Maintenance Assistant 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,但随后我收到有关未选择列的错误。
【问题讨论】:
-
tblWorkOrderTask 中有哪些字段?
-
我现在不在工作,但我一定会为您查找。我知道我只关心这份报告中的几个。
-
字段为:“id”、“intWorkOrderID”、“intOrder”、“dblTimeSpentHours”、“strDescription”、“intAssignedToUserID”、“dtmDateCompleted”、“intCompletedByUserID”
标签: sql select group-by jasper-reports derby