2012-08-10 36 views
0
select 
    A.ACCT as acct, COUNT(TRANS_key) as payments 
from 
    DEBT A 
join 
    TRANS B on B.DEBT_KEY = A.DEBT_KEY 
join 
    TRANS_CODE C on C.TRANS_CODE = B.TRANS_CODE 
join 
    CLIENT D on D.CLIENT_KEY = A.CLIENT_KEY 
join 
    STATUS S on S.STAT_KEY = A. STAT_KEY 
where 
    S.CATEGORY = 'A' and D.CLIENT_KEY = 43 

錯誤:問題與對包含聚合或子查詢的表達式執行聚合函數

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.

我正在運行此當上述錯誤。我不確定我是否應該以不同的方式加入這些表格,但我需要這個工作。

+0

什麼表是'TRANS_KEY'定義的?我的猜測是,你可能甚至不需要所有這些JOIN ..... – 2012-08-10 12:28:42

回答

0

所有其他選擇必須由group by。使用這個

select A.ACCT as acct, COUNT(TRANS_key) as payments 

from DEBT A join TRANS B on B.DEBT_KEY = A.DEBT_KEY 

join TRANS_CODE C on C.TRANS_CODE = B.TRANS_CODE 

join CLIENT D on D.CLIENT_KEY = A.CLIENT_KEY 

join STATUS S on S.STAT_KEY = A. STAT_KEY 

where S.CATEGORY = 'A' and D.CLIENT_KEY = 43 
GROUP BY A.ACCT 
+0

哇,我相信我做到了這一點,它沒有工作的第一次300次,謝謝哈哈。 – Markpelly 2012-08-10 12:30:38

+0

標記爲答案,如果它解決了哈哈! – Apurav 2012-08-10 12:32:49

0

嘗試

select A.ACCT as acct, COUNT(TRANS_key) as payments 
from DEBT A 
join TRANS B on B.DEBT_KEY = A.DEBT_KEY 
join TRANS_CODE C on C.TRANS_CODE = B.TRANS_CODE 
join CLIENT D on D.CLIENT_KEY = A.CLIENT_KEY 
join STATUS S on S.STAT_KEY = A. STAT_KEY 
where S.CATEGORY = 'A' and D.CLIENT_KEY = 43 
group by A.ACCT 

您不能使用聚合函數一樣count返回僅有1個結果和選擇返回多個。如果你想每a.acct計數,然後執行上述操作。

相關問題