w3resource

SQL Exercises: All orders with amounts greater than one on given date

SQL SUBQUERY: Exercise-23 with Solution

23. From the following table write a SQL query to find all those orders whose order amount exceeds at least one of the orders placed on September 10th 2012. Return ord_no, purch_amt, ord_date, customer_id and salesman_id.

Sample table: Orders
ord_no      purch_amt   ord_date    customer_id  salesman_id
----------  ----------  ----------  -----------  -----------
70001       150.5       2012-10-05  3005         5002
70009       270.65      2012-09-10  3001         5005
70002       65.26       2012-10-05  3002         5001
70004       110.5       2012-08-17  3009         5003
70007       948.5       2012-09-10  3005         5002
70005       2400.6      2012-07-27  3007         5001
70008       5760        2012-09-10  3002         5001
70010       1983.43     2012-10-10  3004         5006
70003       2480.4      2012-10-10  3009         5003
70012       250.45      2012-06-27  3008         5002
70011       75.29       2012-08-17  3003         5007
70013       3045.6      2012-04-25  3002         5001

Sample Solution:

-- Selecting all columns from the 'Orders' table
SELECT *
-- Specifying the table to retrieve data from ('Orders')
FROM Orders
-- Filtering the results based on the condition that 'purch_amt' is greater than any value in the set of 'purch_amt' returned by a subquery
WHERE purch_amt > ANY
   -- Subquery: Selecting 'purch_amt' values from the 'orders' table where 'ord_date' is '2012/09/10'
   (SELECT purch_amt
	FROM orders
	WHERE  ord_date='2012/09/10');

Output of the Query:

ord_no	purch_amt	ord_date	customer_id	salesman_id
70005	2400.60		2012-07-27	3007			5001
70008	5760.00		2012-09-10	3002			5001
70010	1983.43		2012-10-10	3004			5006
70003	2480.40		2012-10-10	3009			5003
70013	3045.60		2012-04-25	3002			5001
70007	948.50		2012-09-10	3005			5002

Explanation:

The above SQL query is selecting all columns (*) from the table 'orders' where the "purch_amt" value of the row is greater than any of the "purch_amt" values in the subquery. The subquery is also selecting the "purch_amt" column from the 'orders' table, but only for rows where the "ord_date" value is equal to '2012/09/10'. The ANY keyword is used to check if there is any value in the subquery that the outer query's condition is true for.

Visual Explanation:

SQL Subqueries: Display all the orders that had amounts that were greater than at least one of the orders on September 10th 2012.

Practice Online


Sample Database: inventory

Inventory database model

Query Visualization:

Duration:

Query visualization of Display all the orders that had amounts that were greater than at least one of the orders on October 9th 2012 - Duration

Rows:

Query visualization of Display all the orders that had amounts that were greater than at least one of the orders on October 9th 2012 - Rows

Cost:

Query visualization of Display all the orders that had amounts that were greater than at least one of the orders on October 9th 2012 - Cost

Contribute your code and comments through Disqus.

Previous SQL Exercise: Customers with the highest grade in alphabetical order.
Next SQL Exercise: Orders smaller than any amount for a London customer.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/sql-exercises/subqueries/sql-subqueries-inventory-exercise-23.php