IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Séb.

Exercice SQL -- P01E02 -- Le publipostage

Noter ce billet
par , 27/11/2022 à 14h00 (194 Affichages)
Voici le 2e problème : le publipostage.

Ici on doit générer un nombre prédéterminé de lignes, selon la valeur d'une colonne.

Un ptit côté dynamique qui me plaît bien

L'énoncé nous laisse la possibilité d'utiliser d'autres tables/objets que ceux décrits, je me contenterai d'une unique CTE récursive

La CTE génère 1 ligne supplémentaire jusqu'à atteindre la valeur de T_PERSONNE_PRS.PRS_NOMBRE. Simple et efficace.

Ma solution :

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
WITH RECURSIVE dataset (name, city, count, current) AS (
    -- dataset.current est incrémenté à chaque récursion, permettra de stopper la récursion
    SELECT ALL PRS_NOM, PRS_VILLE, PRS_NOMBRE, 1 FROM T_PERSONNE_PRS WHERE PRS_NOMBRE > 0 -- Graine
    UNION ALL
    SELECT ALL name, city, count, current + 1 FROM dataset WHERE current < count -- Récursion tant que dataset.current inférieur à dataset.count
)
SELECT ALL name, city
FROM dataset
ORDER BY name ASC, city ASC;

Notons que les lignes dont T_PERSONNE_PRS.PRS_NOMBRE vaut 0 ne ressortent pas du tout.

Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Viadeo Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Twitter Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Google Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Facebook Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Digg Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Delicious Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog MySpace Envoyer le billet « Exercice SQL -- P01E02 -- Le publipostage » dans le blog Yahoo

Mis à jour 27/11/2022 à 17h13 par Séb.

Tags: exercice, sql
Catégories
Programmation

Commentaires