CommencerCommencez gratuitement

Une CTE pour les postes IT bien rémunérés

Dans l’exercice précédent, vous avez créé une CTE pour trouver des postes IT. Vous allez maintenant combiner ces résultats avec une autre CTE sur la table salary. Vous utiliserez plusieurs définitions de CTE dans une seule requête. Notez qu’une virgule est utilisée pour séparer les définitions des CTE. La table salary contient des informations supplémentaires sur l’ID et le salary des employés. Votre tâche est de créer une deuxième CTE nommée ITsalary et de faire un JOIN des deux tables CTE sur l’ID des employés. Le JOIN doit sélectionner uniquement les enregistrements ayant des valeurs correspondantes dans les deux tables. Enfin, vous devez trouver uniquement les employés qui gagnent plus de 3000.

Cet exercice fait partie du cours

<cours>Requêtes hiérarchiques et récursives dans SQL Server</cours>
Voir le cours

Instructions de l’exercice

  • Définissez la deuxième CTE, ITsalary, avec les champs ID et Salary.
  • Trouvez les salaires supérieurs à 3000.
  • Combinez les deux CTE à l’aide d’un JOIN sur les ID correspondants et sélectionnez le nom, le salaire et le poste des employés retenus.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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;
Modifier et exécuter le code