我在SQL查询中遇到表连接问题。我在SO上查了一下,但没有任何东西符合我的问题。
以下是两个表格:
Charge
| tache_id (int) | semaine_id (int) | login (varchar) | charge (float) |
Tache
| tache_id (int) | type_id (int) | charge (float) |
基本上,每个任务(Tache)都有一个charge属性,表示完成任务所需的工作量(以天为单位)。 然后用户可以在几周内计划(充电)。
我想要做的是显示尚未完全规划的所有任务,然后显示(在其他窗口中)那些人。
我想做这样的事情:
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
但是我得到了'无效使用群组功能'错误
答案 0 :(得分:1)
这些行上的东西:
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)
答案 1 :(得分:1)
你的意思是一个having子句,你可以在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)