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

Requêtes et SQL. Discussion :

Autant de lignes dans une table qu'un nombre dans requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut Autant de lignes dans une table qu'un nombre dans requete
    Bonjour,
    J'aimerais faire la chose suivante:

    Exemple: J'ai une table avec une référence produit associé à un nombre

    |Réf | Nombre |
    ER30 8
    ER40 10


    Je voudrais qu'une requête qui crée autant de ligne que de nombre par produit

    |Réf-Nombre |
    ER30-1
    ER30-2
    ER30-3
    .....
    ER30-8
    ER40-1
    ....
    ER40-10

    Pouvez vous m'aider??????

    Merci!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Une solution consiste à s'appuyer sur le produit cartésien entre deux tables. Pour ce faire, il faut
    1. Créer une table appelée tNombre par exemple qui contient une seule colonne de type Numérique - Entier Long et lui affecter la clef primaire.
    2. Ajouter dans cette table autant de lignes/nombres que votre table tReference puisse contenir. Par exemple, le nombre maxi de votre colonne Nombre est 8, ajouter au moins 8 lignes dans la table tNombres (1,2,3,4,5,...)
    3. Construire la requete :
    Je considère que votre table contenant vos références se nomme tReference, que la colonne des références se nomme Reference et que la colonne contenant les nombres se nomme Nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT tReference.Reference & "-" & tNombre.Nombre AS MaRef
    FROM tReference, tNombre
    WHERE (tNombre.Nombre<=tReference.Nombre)
    ORDER BY tReference.Reference, tNombre.Nombre;
    @+

    Philippe

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Bonjour,
    Finalement, j'ai réfléchi pour faire cela en VBA. Cela fonctionne bien, voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Set db = CurrentDb
    SQL = "SELECT T_LISTE_AC_DEF_INST.[Désignation AC],T_LISTE_AC_DEF_INST.[Position SI source] FROM T_LISTE_AC_DEF_INST WHERE T_LISTE_AC_DEF_INST.[Désignation AC]= 'ESSIEU MOTEUR ÉQUIPÉ';"
    Set rst = db.OpenRecordset(SQL, dbOpenSnapshot, dbReadOnly)
    INTITULE = rst("Désignation AC")
    Nbpos = rst("Position SI source")
    rst.Close
    Set rst = Nothing
     
    For i = 1 To Nbpos
    Set db = CurrentDb
    Set rst = db.OpenRecordset("T_ACI", dbOpenDynaset)
    rst.AddNew
    rst.Fields("Description POS") = INTITULE & " " & i
    rst.Update
    rst.Close
    Set rst = Nothing
    Next i
    INtitulé est le nom du produit et Nbpos la quantité. Grâce à la boucle qui se base sur la quantité, je réalise bien l'opération.


    Cependant, cela est bon quand on ajoute une ligne de produit à la fois. Si je veux transférer la totalité d'une table de produit, je vais tenter par une double boucle, bonne idée?

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/08/2014, 18h07
  2. Réponses: 7
    Dernier message: 18/12/2013, 14h29
  3. Recherche dans une chaîne des codes contenus dans une table
    Par funkyjul dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/07/2011, 08h28
  4. Réponses: 4
    Dernier message: 05/05/2011, 13h46
  5. Réponses: 2
    Dernier message: 03/04/2010, 22h32

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