2016-07-19 100 views
0

我在where子句中使用聚合函數時遇到錯誤。如何在where子句中使用聚合函數

「聚合不應出現在where子句,除非它是一個包含具有子句或選擇列表在子查詢 ,列 被聚合爲外referrence」。

查詢:

Select a.*,b.* 
from address a 
join account c on a.acct_no=b.acct_no 
where a.stop_date in (select max(a.stop_date) 
         from address x 
         where x.acct_no=a.acct_no and x.addr_code=a.addr_code) 

請建議如何處理它

+0

哪些DBMS您使用的? –

+0

我試圖使用x.stop_date,但它導致了錯誤的數據。其實我正在將oracle轉換爲sql。在oracle中它工作正常。 –

+0

「*我正在將Oracle轉換爲SQL *」沒有任何意義。 Oracle ***使用SQL作爲查詢語言。您已經使用SQL –

回答

0

您應該使用x.stop_date而不是a.stop_date

Select a.*,b.* 
from address a 
join account b on a.acct_no=b.acct_no 
where a.stop_date in (select max(x.stop_date) 
         from address x 
         where x.acct_no=a.acct_no and x.addr_code=a.addr_code) 
相關問題