[SQL] Concours SQL Pro – le publipostage (2 étoiles).

Comme la date des résultats est dépassée et que je pense que le concours reste à titre pédagogique, je me permet de publier quelques résultats qui peuvent vous instruire.

Aujourd’hui, utilisation des CTE pour multiplie une ligne.

( Première Partie ) Problème N°2 Le publipostage. Pour info, j’ai cherche un moment comment multiplier des données avant de comprendre que c’était les CTE la solution.

Réponse :

WITH T_PERSONNE_PRS_TEMP(PRS_NOM,PRS_VILLE,PRS_NOMBRE)  
AS
   (SELECT PRS_NOM,PRS_VILLE,PRS_NOMBRE  
    FROM   T_PERSONNE_PRS
    WHERE  PRS_NOMBRE > 0
    UNION  ALL
    SELECT T_PERSONNE_PRS.PRS_NOM,T_PERSONNE_PRS.PRS_VILLE,T_PERSONNE_PRS.PRS_NOMBRE - 1
    FROM   T_PERSONNE_PRS  
           INNER JOIN T_PERSONNE_PRS_TEMP  
                 ON T_PERSONNE_PRS_TEMP.PRS_NOMBRE = T_PERSONNE_PRS.PRS_NOMBRE)
SELECT *
FROM T_PERSONNE_PRS_TEMP ORDER BY PRS_NOM,PRS_VILLE

PS : je m’en vais sur le champs demander l’autorisation de continuer la publication de solutions aux problèmes fournis par sql pro…

Laisser un commentaire