- 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 | Derived tables and CTEs exercise | Use a CTE to show enemies in certain Dr Who episodes
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 show a list of all of the enemies appearing in Doctor Who episodes featuring Rose Tyler, but not David Tennant.
It's possible - probable, even - that you could do this with a single SELECT statement, but CTEs make it so much easier to divide a complicated query into two simpler parts!
First create a query to show the episode id numbers for the 13 episodes which feature Rose Tyler as a companion, but not David Tennant as the Doctor.
Linking to this as a CTE, show the 8 enemies which appear in these episodes (some more than once):
The enemies corresponding to episodes featuring Rose Tyler, but not David Tennant.
Optionally, save this query as Wonderful CTEs.sql, then close it down.