SQL 列引用无效

Kev*_*owy 5 sql select group-by derby jasper-reports

我正在使用 Jaspersoft 的 iReport 创建一个报告,该报告将从我的 Maintenance Assistant CMMS 数据库中提取数据。数据库位于本地主机上,我没有创建任何表或列。MA CMMS 负责解决这个问题。我只想提取数据以安排在报告中。

\n\n

这是我的代码:

\n\n
SELECT * \nFROM   "tblworkordertask" \nWHERE  "dbltimespenthours" > 0 \n       AND "dtmdatecompleted" BETWEEN $P{DATE_FROM} AND $P{DATE_TO}\nGROUP  BY "intworkorderid" \n
Run Code Online (Sandbox Code Playgroud)\n\n

和我的错误:

\n\n
\n

导致\xc2\xa0by:\xc2\xa0java.sql.SQLSyntaxErrorException:\xc2\xa0Column\xc2\xa0reference\xc2\xa0\'tblWorkOrderTask.id\'\xc2\xa0is\xc2\xa0invalid,\xc2\xa0or\xc2\ xa0is\xc2\xa0part\xc2\xa0of\xc2\xa0an\xc2\xa0无效\xc2\xa0表达式。\xc2\xa0\xc2\xa0For\xc2\xa0a\xc2\xa0SELECT\xc2\xa0list\xc2\xa0和\xc2\xa0a \xc2\xa0GROUP\xc2\xa0BY,\xc2\xa0\xc2\xa0列\xc2\xa0和\xc2\xa0表达式\xc2\xa0被\xc2\xa0选中\xc2\xa0可能\xc2\xa0仅\xc2\xa0包含\xc2\xa0有效\ xc2\xa0 分组\xc2\xa0 表达式\xc2\xa0 和\xc2\xa0valid\xc2\xa0aggregate\xc2\xa0 表达式。

\n
\n\n

我不知道为什么错误引用“tblWorkOrderTask.id”,因为我没有这样的列,也没有要求该列。

\n\n

如果我取出 group by 子句,它工作正常,但正如您所期望的,我会得到具有相同 WorkOrderID 的多个结果。我想按这一列进行分组,然后统计结果。我尝试使用 SELECT DISTINCT,但随后出现有关未选择的列的错误。

\n

Vin*_*nie 3

您将选择 tblWorkOrderTask 表中的所有列。“id”列是该表中的第一列。您收到错误是因为您没有在选择列表中指定所有列。

此选择可行,但我不确定您需要从表中获取哪些信息。

SELECT id, intworkorderid
FROM tblWorkOrderTask 
group by id, intworkorderid
Run Code Online (Sandbox Code Playgroud)

http://www.w3schools.com/sql/sql_groupby.asp