ALL SOFTWARE EXERCISES
- EXERCISES HOME PAGE (837)
- Access 2010 (66)
- Access VBA Macros (17)
- Advanced VBA (29)
- ASP.NET MVC (0)
- ASP.NET webforms - C# (25)
- ASP.NET webforms - VB (27)
- Excel 2010 (83)
- Excel 2013 (10)
- Excel VBA Macros (37)
- Power BI - Excel 2013 (25)
- Power BI - Excel 2016 (23)
- Power BI Desktop (26)
- PowerPivot 2010 (26)
- Report Builder 3.0 (42)
- SQL (153)
- SSAS - multidimensional (21)
- SSAS - tabular (29)
- SSIS Integration Services (18)
- SSRS Reporting Services (53)
- Visual Basic 2010 (42)
- Visual C Sharp 2010 (65)
- WPF - Visual C# (20)
- 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 (3)
- Detailed stored procedures (3)
- Variables (4)
- Parameters and return values (4)
- Looping (1)
- Scalar functions (3)
- Transactions (2)
- Creating tables (3)
- Temporary tables and table variables (5)
- Table-valued functions (3)
- Derived tables and CTEs (7)
- Dynamic SQL (2)
- Archived (70)
Exercise: Show companions for specific authors' episodes, using a CTE
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.
The answer to the exercise will be included and explained if you attend the Wise Owl 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 use a CTE (Common Table Expression) to extract data from the database in two passes:
- Get a list of all of the episodes written by authors with MP in their names.
- Get a list of the companions featuring in these episodes.
You get no points for pointing out that you could do all of this in a single query!
Start by creating a query to show just the episode id numbers for those Doctor Who episodes written by authors with MP as part of their names:
This should return 4 episodes (one written by Keith Temple, as it happens, and 3 by Steve Thompson).
Now create a CTE from this, using the standard syntax:
-- previous command must end with a semi-colon (;)
WITH NameForYourCte AS (
-- now use this in a query
-- join this to other tables as normal
INNER JOIN ...
Your final query should join to your CTE to show the companions featuring in these episodes (you may need to use the word DISTINCT to avoid some companions' names appearing twice):
The results: 4 companions feature in episodes written by authors whose names contain MP.
Optionally, save your query as If that is not useful.sql, then close it down.