2013-08-24 100 views
0

我正在使用IBM Cognos Framework Manager來創建報告,並在此報告中我們需要隔離最後一行,但這不是我的問題。我正在嘗試使用GROUP BY子句來實現它,無論我做什麼,它總是會拋出一個錯誤。DB2 SQL Group通過聲明

表被命名爲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 

錯誤產生:執行操作 'sqlPrepareWithOptions' 的狀態= RQP-DEF-0177時發生錯誤 ' - 9'。 UDA-SQL-0107在「準備」操作過程中發生了一般性異常。 [IBM] [CLI驅動程序] [DB2/NT] SQL0119N在SELECT子句,HAVING子句或ORDER BY子句中指定的「THESIS_ID」開始的表達式不在GROUP BY子句中指定,或者在SELECT子句中, HAVING子句或具有列函數且沒有GROUP BY子句的ORDER BY子句被指定。 SQLSTATE = 42803

+0

你的小組沒有任何意義。你究竟在努力實現什麼? –

回答

1

錯誤消息說明了這一切:您必須在SELECT列表中包含您在GROUP BY子句中具有的所有相同列,並且可能還有一些集合函數。

1

GROUP BY子句正在尋找一組列以進行分組,以便在一個或多個剩餘列上執行某些聚合函數。例如,如果您想選擇給定部門中給定用戶的最近交易日期,那麼您將執行MAX(交易日期)...... GROUP BY員工,部門

如果我理解正確,您正試圖將屬於某個THESIS_ID的行保留在一起。如果是這種情況,請爲THESIS_ID使用ORDER BY子句。祝你好運。