2016-03-07 27 views
0

我在sql查詢中的表連接有問題。我已經看過它,但沒有什麼符合我的問題。不能按要求加入表

這裏有兩個表:

Charge 
| tache_id (int) | semaine_id (int) | login (varchar) | charge (float) | 

Tache 
| tache_id (int) | type_id (int) | charge (float) | 

基本上,每個任務(環節存在)具有代表的工作量(以天爲單位)必須完成的任務的電荷屬性。 用戶可以在幾個星期內計劃(收費)。

我想要做的是顯示所有尚未完全計劃的任務,然後顯示(在另一個窗口中)那些人。

我覺得做這樣的:

select Tache.tache_id, Tache.charge 
left join Charge on Charge.tache_id = Tache.tache_id 
where sum(Charge.charge) < Tache.charge 
group by Tache.tache_id 

但我得到一個「無效使用組功能的」錯誤

+1

DId你忘了FROM也許吧? SELECT ... FROM ... –

+2

使用標記dbms產品。 (其中一些人有一個很奇怪的GROUP BY行爲......) – jarlh

回答

1

的東西在這些線路上,如果tache.tache_id是獨一無二的:

select Tache.tache_id, max(Tache.charge) 
from tache 
left join Charge on Charge.tache_id = Tache.tache_id 
group by Tache.tache_id 
having sum(Charge.charge) < max(Tache.charge) 
+0

感謝隊友,它幫了很多! – jrfoehn

1

你的意思是有句子,你可以在where子句中使用聚合函數..

select Tache.tache_id, max(Tache.charge) 
from Tache 
left join Charge on Charge.tache_id = Tache.tache_id 
group by Tache.tache_id 
having sum(Charge.charge) < max(Tache.charge)