views:

22

answers:

1
select nume,model,sum(km_sosire-km_plecare) as 'km_parcursi' from masina m
inner join (foaie_parcurs f inner join angajat a using(id_angajat)) using(id_masina)
where sum(km_sosire-km_plecare)>100
group by a.nume,m.model
order by sum(km_sosire-km_plecare);

Error: Invalid use of group function

Why?

Thanks.

+4  A: 

You can't use aggregates in the where clause. That's what "having" is for.

select nume,model,sum(km_sosire-km_plecare) as 'km_parcursi' from masina m
inner join (foaie_parcurs f inner join angajat a using(id_angajat)) using(id_masina)
group by a.nume,m.model
having sum(km_sosire-km_plecare)>100
order by sum(km_sosire-km_plecare);
Willis Blackburn
FYI, you can use aliases in the `HAVING` clause so this will work too: `having km_parcursi > 100`
Rob Van Dam