使用子查询的MYSQL查询

时间:2010-04-28 17:05:46

标签: sql mysql

任何人都可以帮助这项工作。

列出每个零件的零件编号,零件描述和on_hand值,其中手头的单位数量大于使用子查询的所有零件的平均单位数量?

SELECT PART_NUM, 
       DESCRIPTION, 
       SUM(ON_HAND * PRICE) ON_HAND_VALUE
  FROM PART;
 WHERE MAX(ON_HAND);
       (AVG(ON_HAND) > ON_HAND);

部分表

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 个答案:

答案 0 :(得分:2)

假设每个部分在部分表中只有一个记录(您的数据结构在问题中根本不清楚),这应该可以满足您的需求:

 SELECT part_num, description, (on_hand * price) AS on_hand_value
    FROM part
    WHERE on_hand > (SELECT AVG(on_hand) FROM part)

(根据您添加到问题中的数据,我认为这是正确的。)

答案 1 :(得分:0)

这是向正确方向迈出的一步,谢谢,我用过它。

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