我正在使用 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'state =' - 9'时发生错误。 UDA-SQL-0107在“准备”操作期间发生了一般异常。 [IBM] [CLI驱动程序] [DB2 / NT] SQL0119N在GROUP BY子句中未指定SELECT子句,HAVING子句或ORDER BY子句中指定的以“THESIS_ID”开头的表达式,或者它在SELECT子句中,HAVING子句,或具有列函数且没有GROUP BY子句的ORDER BY子句。 SQLSTATE = 42803
答案 0 :(得分:1)
错误消息说明了一切:您必须在SELECT列表中拥有GROUP BY子句中所有相同的列,并且可能是某些聚合函数。
答案 1 :(得分:1)
GROUP BY子句查找一组要分组的列,以便在一个或多个剩余列上执行某些聚合函数。例如,如果要为给定部门中的给定用户选择最新交易日期,那么您将执行MAX(交易日期)...... GROUP BY员工,部门
如果我理解正确,您试图将属于某些THESIS_ID的行保持在一起。如果是这种情况,请对THESIS_ID使用ORDER BY子句。祝你好运。