Un CTE pentru pozițiile IT bine plătite
În exercițiul anterior, ai creat un CTE pentru a găsi pozițiile IT. Acum vei combina aceste rezultate cu un alt CTE pe tabela salary. Vei folosi mai multe definiții CTE într-o singură interogare. Observă că o virgulă este folosită pentru a separa definițiile interogărilor CTE. Tabela salary conține informații suplimentare despre ID-ul și salariul angajaților. Sarcina ta este să creezi un al doilea CTE numit ITsalary și să realizezi un JOIN între cele două tabele CTE pe baza ID-ului angajaților. JOIN-ul trebuie să selecteze doar înregistrările care au valori corespondente în ambele tabele. În final, trebuie să găsești doar angajații care câștigă mai mult de 3000.
Acest exercițiu face parte din cursul
Interogări ierarhice și recursive în SQL Server
Instrucțiuni pentru exercițiu
- Definește al doilea CTE,
ITsalary, cu câmpurileIDșiSalary. - Găsește salariile de peste
3000. - Combină cele două CTE-uri folosind un
JOINpeID-urile corespondente și selectează numele, salariul și poziția angajaților selectați.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;