- Simple Queries (4)
- Setting criteria using WHERE (5)
- Calculations (7)
- Calculations using dates (4)
- Basic joins (8)
- More exotic joins (2)
- Aggregation and grouping (8)
- Views (5)
- Subqueries (5)
- Stored procedures (5)
- Variables (8)
- Parameters and return values (11)
- Testing conditions (1)
- Looping (3)
- Scalar functions (6)
- Transactions (5)
- Creating tables (5)
- Temporary tables and table variables (9)
- Table-valued functions (6)
- Derived tables and CTEs (13)
- Dynamic SQL (4)
- Pivots (2)
- Triggers (2)
- Archived (70)
SQL | Archived exercise | Set importance column according to no of places
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
You can learn how to do this exercise on the relevant Wise Owl classroom training course (sadly for the moment only in the UK).
You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
If you haven't already done so, run the stored procedure in the above folder to generate a database of training courses and delegates.
Add a new integer column called Importance to the tblPerson table:
The new column
Write a query which begins a transaction, and then updates the value of the Importance column for each person to:
- 10 if this person has attended 1 or less courses (ie if the number of rows in the tblDelegate table for this PersonId is less than or equal to 1)
- 20 if this person has attended 2 to 4 courses; or
- 30 otherwise
Extend this query so that it deletes all "unimportant" people (ie those whose importance is 10), and prints out a message saying how many rows have been deleted:
You should see 274 people have been zapped
Finally, add a condition which:
- commits the transaction if there are still at least 500 people left in the table; or
- rolls it back otherwise
Optionally, save this query as How not to run a training company.sql, then close it down.