IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Réponse à SQL Exercice probleme no2_Le publipostage


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 10
    Par défaut Réponse à SQL Exercice probleme no2_Le publipostage
    Bonjour,

    L'exercice SQL de A à Z Exercices et travaux pratique No2: Le publipostage correspond exactement à ce que je souhaite faire avec une base de données. Est-ce possible d'avoir une piste de solution...

    tps://sqlpro.developpez.com/Exercices/?page=part-1 (no2 Le publipostage)

    Merci!

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Il faut ajouter une table de nombre à la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE T_NUM (NUM INT PRIMARY KEY)
    L'alimenter avec les nombres de 1 à ...
    Puis faire une jointure de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JOIN T_NUM AS I ON MaValeurmax <= I.NUM
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre habitué
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 10
    Par défaut
    Il s'agit bien de ce problème?
    Nom : publipostage.png
Affichages : 317
Taille : 44,9 Ko

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Oui.... J'en suis l'auteur !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre habitué
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 10
    Par défaut
    Désolée. Ma question trahie mon niveau de SQL… Merci pour votre réponse. (et j'avais bien identifié la sommité qui m'apportait lumière , merci pour vos travaux pour démystifier ce langage, cela est très apprécié).

    Est-ce possible avec une commande d'alimenter le champs num 1 à 5 sans passer par 1,2,3,4,5...
    Je souhaite que les valeurs soit séquentielle de 1 à la somme du contenu PRS_Nombre?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    oui, avec une requête récursive.... mais ce sera toujours beaucoup plus long que de créer une table en dur avec les nombres de 1 à 10000 par exemple.

    Création et alimentation de la table des nombres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE dbo.T_NUM (NUM INT PRIMARY KEY);
    DECLARE @I INT = 0;
    WHILE @I < 10000
       BEGIN INSERT INTO dbo.T_NUM SELECT @I;
       SET @I += 1;
    END;
    Cela a pris 7 secondes chez moi...

    Vous pouvez mettre cette table dans un groupe de fichier en READ ONLY, ce qui est très avantageux en terme de performances...

    SOLUTION n°1 - avec la table en "dur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T.*
    FROM   MaTable AS T
           JOIN dbo.T_NUM
              ON T_NUM.MonNombre <= NUM;
    SOLUTION n°2 - sans la table en "dur", mais avec calcul récursif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    WITH 
    T_NUM AS
    (SELECT 1 AS NUM
     UNION  ALL
     SELECT NUM + 1
     FROM   T_NUM
     WHERE  NUM < 10000)
    SELECT T.*
    FROM   MaTable AS T
           JOIN T_NUM
              ON T_NUM.MonNombre <= NUM
    OPTION(maxrecursion 0);
    la solution n°1 étant nettement p^réfarable, car les données sont statiques alors que dans la 2 il faudra recalculer tous les nombres à chaque fois

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server] problème de classement, calcul d'un rang
    Par lepeule dans le forum Langage SQL
    Réponses: 12
    Dernier message: 22/10/2019, 10h31
  2. [SQL Server] Probleme avec not exists
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2006, 16h51
  3. [SQL] Help probleme de while !
    Par jfjava2002 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/01/2006, 17h24
  4. [9i][SQL Plus] Probleme d'affichage ?
    Par sali dans le forum Oracle
    Réponses: 3
    Dernier message: 30/10/2005, 09h46
  5. requete SQL et probleme de format de Date
    Par huon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/08/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo