0

我正在使用IBM Cognos Framework Manager创建一个报告,在这个报告中我们需要隔离最后一行,但这不是我的问题。我正在尝试使用 GROUP BY 子句来实现它,无论我做什么,它总是会抛出一个错误。

表名为 THESIS_ADVISER,包含以下列:

THESIS_ID
FACULTY_ID
START_SY
START_TERM

为什么我的 group by 子句不起作用?

Select * 
From SAMPLE.THESIS_ADVISER THESIS_ADVISER
Group by 
    THESIS_ADVISER.THESIS_ID

生成的错误:RQP-DEF-0177 执行操作“sqlPrepareWithOptions”状态=“-9”时发生错误。UDA-SQL-0107 在“准备”操作期间发生一般异常。[IBM][CLI Driver][DB2/NT] SQL0119N 在 SELECT 子句、HAVING 子句或 ORDER BY 子句中指定的以“THESIS_ID”开头的表达式未在 GROUP BY 子句中指定,或者它位于 SELECT 子句 HAVING 中子句或带有列函数但未指定 GROUP BY 子句的 ORDER BY 子句。SQLSTATE=42803

4

2 回答 2

1

GROUP BY 子句正在寻找一组要分组的列,以便在一个或多个剩余列上执行一些聚合函数。例如,如果您想为给定部门中的给定用户选择最新的交易日期,那么您将执行 MAX(Transaction Date) ......GROUP BY Employee, Department

如果我理解正确,您正在尝试将属于某个 THESIS_ID 的行保持在一起。如果是这种情况,请对 THESIS_ID 使用 ORDER BY 子句。祝你好运。

于 2013-08-27T19:09:05.890 回答
0

错误消息说明了一切:您必须在 SELECT 列表中拥有与 GROUP BY 子句中相同的所有列,并且可能是一些聚合函数。

于 2013-08-24T14:38:51.543 回答