2012-06-29 6 views

ответ

5

Поскольку вы хотите иметь предикат в своей совокупной функции, вы можете использовать пункт HAVING

SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL 
    FROM ORDERITEMS 
GROUP BY ORDER# 
HAVING SUM(PAIDEACH * QUANTITY) > 39.9 
ORDER BY TOTAL DESC; 
2

Если вы хотите использовать псевдоним в вашем пункте WHERE, то вы можете разместить запрос внутри другого SELECT:

SELECT * 
FROM 
(
    SELECT ORDER#, SUM(PAIDEACH * QUANTITY) AS TOTAL 
    FROM ORDERITEMS 
    GROUP BY ORDER# 
) x 
WHERE x.TOTAL > 39.9 
ORDER BY x.TOTAL DESC; 
0

order by 2 desc (числовые ссылки на колонки начинаются с 1)

Там нет необходимости писать вложенные запросы или даже положить пункт having к вашему запросу. Просто обратитесь к столбцу с цифрой, но не забудьте изменить его при изменении запроса ;-)

+1

Ошибка указана из 'where', а не' order by'; псевдоним столбца действителен. –

+0

Время для меня, чтобы научиться читать еще раз ... – ipip