SQL 列引用无效

标签 sql select group-by jasper-reports derby

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

这是我的代码:

SELECT * 
FROM   "tblworkordertask" 
WHERE  "dbltimespenthours" > 0 
       AND "dtmdatecompleted" BETWEEN $P{DATE_FROM} AND $P{DATE_TO}
GROUP  BY "intworkorderid" 

和我的错误:

Caused by: java.sql.SQLSyntaxErrorException: Column reference 'tblWorkOrderTask.id' is invalid, or is part of an invalid expression.  For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions.



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

如果我去掉 group by 子句,它工作正常,但正如您所料,我得到多个具有相同 WorkOrderID 的结果。我想按这个列分组,然后统计结果。我尝试使用 SELECT DISTINCT,但随后我收到有关未选择列的错误。

最佳答案

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

此选择会起作用,但我不确定您需要从表格中获取哪些信息。

SELECT id, intworkorderid
FROM tblWorkOrderTask 
group by id, intworkorderid

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

关于SQL 列引用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15577442/

相关文章:

mysql - 使用 select 子句更新 mysql 作为更新值

wpf - 从 View 模型中选择数据网格行中的所有复选框

php - MySQL 选择具有特定条件的分组

转换Excel日期时间的MySQL代码

c# - aspnet_Membership 表中有解密密码的方法吗?

mysql - 查找仅属于特定办公室的相关邮政编码

mysql - #1411 - INSERT INTO...SELECT 函数 str_to_date 的日期时间值不正确

mysql - 父选择 SQL 查询生成子选择

node.js - 如何在 Sequelize.js 中查询 Group by 和 MAX(id)

Mysql查询以获取上周的计数