2010-04-27 4 views
1

Как я могу сделать это, выберите 7500 или больше из столбца ON_HAND VALUE?Запрос MYSQL с использованием SUM

«Перечислите описание детали части детали и значение для каждой части, чье ручное значение составляет не менее $ 7500. Назначьте ON_HAND_VALUES в качестве вычисленного столбца».

Это то, что у меня есть до сих пор, я пробовал подзапросы IN, но я не могу понять это.

SELECT PART_NUM, DESCRIPTION, SUM(ON_HAND * PRICE) AS ON_HAND_VALUE 
FROM PART 
WHERE SUM(ON_HAND * PRICE)'7500' 
GROUP BY PART_NUM, DESCRIPTION; 

Часть Таблица

PART_NUM DESCRIPTION  ON_HAND  CLASS WAREHOUSE PRICE 

AT94  Iron    50   HW   3  24.95 
BV06  Home Gym   45   SG   2  794.95 
CD52  Microwave Oven  32  AP   1  165.00 
DL71  Cordless Drill  21  HW   3  129.95 
DR93  Gas Range   8  AP   2  495.00 
DW11  Washer    12  AP   3  399.99 
FD21  Stand Mixer  22  HW   3  159.95 
KL62  Dryer    12  AP   1  349.95 
KT03  Dishwasher   8  AP   3  595.00 
KV29  Treadmill   9  SG   2  1390.00 

ответ

2

вы не можете использовать where, вы должны использовать having с агрегатными функциями:

SELECT PART_NUM, DESCRIPTION, SUM(ON_HAND * PRICE) AS ON_HAND_VALUE 
FROM PART 
GROUP BY PART_NUM, DESCRIPTION; 
HAVING SUM(ON_HAND * PRICE)'7500' 

where вычисляется перед group Инг и sum мина происходит, having оценивает набор результатов, после того как записи отфильтровываются и сгруппированы

+0

Спасибо за помощь –

0

Это то, что я использовал.

SELECT PART_NUM, DESCRIPTION, SUM(ON_HAND * PRICE) AS ON_HAND_VALUE 
FROM PART 
GROUP BY PART_NUM 
HAVING SUM(ON_HAND * PRICE) > '7500' 
ORDER BY PART_NUM; 
0

Первые два человека ошибаются. Я знаю, что это верно:

SELECT PART_NUM, DESCRIPTION, (ON_HAND * PRICE) AS ON_HAND_VALUE 
FROM PART 
WHERE (ON_HAND * PRICE) >= 7500