Хорошо, что проблема разрешилась, но - просто для ясности... Оператор, точнее, аггрегирующая функция SUM() связанa с указанным полем того множества, из которого производится SELECT, и суммирует значения этого поля для записей, прошедших все фильтры (WHERE и HAVING). В простейшем случае это одна таблица (тогда подразумевается GROUP BY по первичному ключу, т.е., эффективно, вообще никакого), но может быть и JOIN, и подзапрос и.д. и тогда уже, конечно, нужно явно указывать GROUP BY, который будет относиться к одному или нескольким полям ЭТОГО ЖЕ множества. Проще говоря, аггрегирующие функции относятся к множеству, полученному в результате группировки и применяются к тем записям, которые были "свернуты" этой группировкой.