2010-04-27 144 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