- 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 | Parameters and return values exercise | Use output parameters in a procedure to count two sets of rows
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 if you attend one of more of the courses listed below!
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.
First (if you haven't already done so) run the script shown above to generate the Doctor Who training database.
The aim of this exercise is to create a stored procedure called spGoodAndBad which shows the number of Doctor Who's companions and enemies for a given series number. For example, you could run this SQL:
-- choose series number for which to display info
DECLARE @SeriesNumber int = 1
-- variables to hold answers
DECLARE @NumEnemies int
DECLARE @NumCompanions int
EXEC spGoodAndBad @SeriesNumber, @NumEnemies output, @NumCompanions output
-- show the results
@SeriesNumber AS 'Series number',
@NumEnemies AS 'Number of enemies',
@NumCompanions AS 'Number of companions'
This should give the following output:
For series 1, the Doctor met 8 distinct enemies and had 3 distinct companions.
Now all that you have to do is to write the stored procedure with one input and two output parameters!
The answers uses SELECT COUNT(DISTINCT EnemyId) and SELECT COUNT(DISTINCT CompanionID), although there may well be other ways to skin this proecedural cat.
After testing your procedure with different series numbers, optionally save it as Good and bad.sql, then close it down.