2014-03-25 67 views
1

我想生成一個關於疾病計數大於或等於5的特殊疾病報告的報告。sql查詢無法運行:sql:條件計數(生病)<= 5時顯示結果

select 
    a.treatid 
    ,b.patid 
    ,b.patname 
    ,b.tel 
    ,a.ill 
    ,count(a.ill) 
from treatment a, 
    patient a 
where a.patid=b.patid 
and count(ill)<=5; 

該查詢沒有按照我的預期生成結果。 ,但用count(ill) =1產生全部治療。

任何人都可以幫助我解決這個問題。

我已經厭倦了測試這個查詢。

+0

爲什麼兩個別名都被設爲'a'? – paqogomez

回答

4

因爲您在select語句中計數(A.ill) - 您需要將having子句與group by結合使用。 例如:

SELECT b.patid, b.patname, b.tel, a.ill, count(a.ill) 
FROM treatment a 
INNER JOIN patient b ON a.patid=b.patid 
GROUP BY a.ill, b.patid, b.patname, b.tel 
HAVING count(a.ill)<=5; 
+0

生成與問題相同的結果 –