2013-08-26 51 views
0
select i.sicil_no, 
     m.adi, 
     m.soyadi, 
     i.net_tutar, 
     i.odeme_tarihi 
    from ibrmt050 i, 
     mismt301 m 
where (i.sicil_no=m.sicil_no and 
     odeme_turu='36'  and 
     odeme_tarihi between '01/01/2012' and '30/06/2012') 
GROUP BY TO_CHAR(i.odeme_tarihi,'MM') , 
     To_CHAR(i.odeme_tarihi,'YYYY') 
ORDER BY TO_CHAR(i.odeme_tarihi,'YYYY') , 
     TO_CHAR(i.odeme_tarihi,'MM'); 

我想逐個列出此查詢,但它會給出錯誤。Oracle SQL - 使用GROUP BY時出錯

「不是一個GROUP BY表達式」

那我該怎麼辦?

+1

你想每月彙總什麼/你的輸入和預期輸出是什麼?請提供示例數據。 –

+0

在SO上搜索'oracle not a group by expression'。這方面有很多問題。 –

回答

1

根據文檔:

如果您也是在這個語句中指定一個group_by_clause:在選擇列表
選擇列表是受到以下限制http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm

限制,那麼這個 選擇列表只能包含以下類型的表達式:

  • 常量
  • 集合函數和函數USER,UID,和SYSDATE
  • 表達式的那些相同的group_by_clause。如果group_by_clause位於子查詢中,則
    子查詢的GROUP BY列必須與外部查詢的選擇列表匹配。子查詢的選擇列表中的任何列
    GROUP BY不需要的子查詢列表
    BY操作被忽略而沒有錯誤。
  • 表達式涉及上述表達式計算結果爲所有行的值相同的一組

您查詢的SELECT語句包含下列列:

select i.sicil_no, 
     m.adi, 
     m.soyadi, 
     i.net_tutar, 
     i.odeme_tarihi 

未列出在GROUP BY列表中,這是錯誤的來源。