you have quantity sold set to return 1 or 0:
Sum( CASE WHEN order_details.idDetails IS NOT NULL THEN 1 ELSE 0 END) AS 'Qty_Sold'
4 is not equal to 0
Also, i don't think you can compare alias values returned from aggregate functions in the where clause, i think you need to perform the aggregate function in the where for it work correctly.
If you need one on one help t figure this query out, I think this is more complex than I can help with in the forum, you should sign up for a premiere support ticket for this:
http://www.webassist.com/premier_request.php