En CTE för välbetalda IT-tjänster
I föregående övning skapade du en CTE för att hitta IT-tjänster. Nu ska du kombinera dessa resultat med en till CTE på tabellen salary. Du kommer att använda flera CTE-definitioner i en enda fråga. Observera att ett kommatecken används för att separera CTE-frågedefinitionerna. Tabellen salary innehåller mer information om anställdas ID och lön. Din uppgift är att skapa en andra CTE med namnet ITsalary och att JOIN:a båda CTE-tabellerna på anställdas ID. JOIN:en ska endast välja poster med matchande värden i båda tabellerna. Slutligen ska du hitta enbart de anställda som tjänar mer än 3000.
Den här övningen är en del av kursen
Hierarkiska och rekursiva frågor i SQL Server
Övningsinstruktioner
- Definiera den andra CTE:n,
ITsalary, med fältenIDochSalary. - Hitta löner över
3000. - Kombinera de två CTE:erna med ett
JOINpå matchandeID:n och välj namn, lön och befattning för de valda anställda.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
WITH ITjobs (ID, Name, Position) AS (
SELECT
ID,
Name,
Position
FROM employee
WHERE Position like 'IT%'),
-- Define the second CTE table ITsalary with the fields ID and Salary
___ (___, ___) AS (
SELECT
ID,
Salary
FROM Salary
-- Find salaries above 3000
WHERE ___ ___ 3000)
SELECT
ITjobs.NAME,
ITjobs.POSITION,
ITsalary.Salary
FROM ITjobs
-- Combine the two CTE tables the correct join variant
___ ___ ITsalary
-- Execute the join on the ID of the tables
ON ITjobs.ID = ITsalary.ID;