2010-04-27 141 views
1

我怎樣才能讓這個選擇從ON_HAND值列7500或更高?MySQL查詢SUM

「列出爲在場值,其爲至少7,500 $各部分的零件數部分descrtiption和現有量值。指定ON_HAND_VALUES作爲計算列」。

這是我到目前爲止,我試圖subquerys陳述,但我不明白。

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 ING評估和sum明情況, having在記錄過濾和分組後對結果集進行評估

+0

感謝您的幫助 – 2010-04-27 18:35:40

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