Reputation: 1151
How can I make this select the 7500 or greater from the ON_HAND VALUE column?
" List the part number part descrtiption and onhand value for each part whose on hand value is at least $7,500. Assign ON_HAND_VALUES as the computed column."
This is what I have so far, I tried subquerys IN statements but I cant figure it out.
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 Table
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
Upvotes: 1
Views: 409
Reputation: 1
The first two people are wrong. I know for a fact this is correct:
SELECT PART_NUM, DESCRIPTION, (ON_HAND * PRICE) AS ON_HAND_VALUE
FROM PART
WHERE (ON_HAND * PRICE) >= 7500
Upvotes: 0
Reputation: 1151
This is what I used.
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;
Upvotes: 0
Reputation: 265161
you can't use where
, you have to use having
with aggregate functions:
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
is evaluated before group
ing and sum
ming happens, having
evaluates on the result set, after records are filtered and grouped
Upvotes: 2