不能根据要求加入表

时间:2016-03-07 11:14:42

标签: sql

我在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

但是我得到了'无效使用群组功能'错误

2 个答案:

答案 0 :(得分: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)

答案 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)