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 :

boucle en sql


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut boucle en sql
    Bonjour,

    j'ai un petit soucis avec une requête sql et j'aimerais avoir votre aide

    j'ai une requête qui retourne le résultat suivant

    Nom -------- Prénom -------- NbFiche
    a1 ---------- b1 ------------ 15


    j'aimerais imprimer 15 fois la même fiche (avec le même Nom/Prénom)
    j'ai voulu modifier la requête pour avoir le résultat :




    Nom -------- Prénom -------- NumFiche
    a1 b1 1
    a1 b1 2
    a1 b1 3

    ....................
    a1 b1 14
    a1 b1 15


    une piste?
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il semble que la première requête donne le NOMBRE de fiches pour chaque couple (Nom, Prénom) alors que la deuxième donne la liste des triplets (Nom, Prénom, NumFiche).

    j'aimerais imprimer 15 fois la même fiche (avec le même Nom/Prénom)
    Avec SQL, on n'imprime pas ! On manipule des données.

    Si tu veux comme résultat '15 fois la même fiche', il faudrait déjà déterminer quelle fiche et quel autre critère va faire que le même triplet va apparaître 15 fois. Mais je n'en vois pas l'utilité sur un plan purement SQL !

  3. #3
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Utilisez un tableur, ça prendra moins d'une seconde!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    merci pour vos réponse

    en effet je suis obligé d'utiliser une procédure stockée avec une base SQL Server excitante que je dois pas modifier

    @CinePhil: je passe le résultat de SQL vers Cristal report pour l impression



    mon problème que sur la base j'ai seulement le numéro de la première fiche X et le nombre à compter à partir de X

  5. #5
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Tsunamy Voir le message
    une base SQL Server excitante
    Wow ! Elle a quoi d'excitant la base de données ?

    Sinon ton problème s'est résolu tout seul ou pas ?

    Imprimer 15 fois la même fiche avec Crystal Report, c'est plutôt à ce logiciel qu'il faut le dire non ?
    En tout cas il semble que ce ne soit plus un problème de "Langage SQL" qui est l'objet de ce forum !

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Il te faut une table d'entiers, suffisamment longue pour répondre à tes besoins (tous les nombres de 1 à 20 si tu as au plus 20 répétitions de la ligne à effectuer, par exemple)
    Après, ce n'est plus qu'une question de jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  tbl.nom
        ,   tbl.prenom
        ,   ent.valeur  AS numfiche
    FROM    matable AS tbl
        INNER JOIN
            entiers AS ent
            ON  tbl.nbfiche >= ent.valeur
    ORDER BY tbl.nom
        ,   tbl.prenom
        ,   ent.valeur
    ;
    Comme l'a dit Cinephil, ce n'est obligatoirement au niveau de la requête qu'il faudrait le faire, mais SQL sait le faire

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Wow ! Elle a quoi d'excitant la base de données ?

    Sinon ton problème s'est résolu tout seul ou pas ?

    Imprimer 15 fois la même fiche avec Crystal Report, c'est plutôt à ce logiciel qu'il faut le dire non ?
    En tout cas il semble que ce ne soit plus un problème de "Langage SQL" qui est l'objet de ce forum !
    Loool j'ai du me tromper
    exactement je cherche à passer le numéro de chaque fiche en paramètre
    Exple : première fiche a le numéro 10 et j'ai 5 fiche à compter a partir de 10

    j'aime avoir le resultat suivant :
    a1 | b1 | 10
    a1 | b1 | 11
    a1 | b1 | 12
    a1 | b1 | 13
    a1 | b1 | 14
    a1 | b1 | 15

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Quelle est votre version de SQL Server ?
    Si c'est au moins 2005, vous pouvez utiliser une CTE récursive pour arriver à vos fins.

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Citation Envoyé par Tsunamy Voir le message
    Loool j'ai du me tromper
    exactement je cherche à passer le numéro de chaque fiche en paramètre
    Exple : première fiche a le numéro 10 et j'ai 5 fiche à compter a partir de 10

    j'aime avoir le resultat suivant :
    a1 | b1 | 10
    a1 | b1 | 11
    a1 | b1 | 12
    a1 | b1 | 13
    a1 | b1 | 14
    a1 | b1 | 15
    Citation Envoyé par Tsunamy Voir le message
    Bonjour,

    j'ai un petit soucis avec une requête sql et j'aimerais avoir votre aide

    j'ai une requête qui retourne le résultat suivant

    Nom -------- Prénom -------- NbFiche
    a1 ---------- b1 ------------ 15


    j'aimerais imprimer 15 fois la même fiche (avec le même Nom/Prénom)
    j'ai voulu modifier la requête pour avoir le résultat :




    Nom -------- Prénom -------- NumFiche
    a1 b1 1
    a1 b1 2
    a1 b1 3

    ....................
    a1 b1 14
    a1 b1 15


    une piste?
    merci d'avance
    Ce n'est plus tout à fait la même question... ou je me trompe ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Ce n'est plus tout à fait la même question... ou je me trompe ?
    exactement ce que je cherche al1_24
    merci pour la réponse.

    et hopp


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

Discussions similaires

  1. ecriture dans un fichier ,boucle for + SQL
    Par lizardman dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2008, 18h39
  2. Comment faire un Sleep dans une boucle PL/SQL
    Par foster06 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 01/02/2008, 19h59
  3. boucle insert sql
    Par bernard26000 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/12/2007, 12h29
  4. Réponses: 4
    Dernier message: 28/04/2007, 23h42
  5. [MS SQL Server] comment faire des boucles en SQL ?
    Par Yorel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2006, 10h41

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