Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Definiera den andra CTE:n, ITsalary, med fälten ID och Salary.
  • Hitta löner över 3000.
  • Kombinera de två CTE:erna med ett JOIN på matchande ID: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;
Redigera och kör kod