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 :

Duplications d'enregistrements sous conditions [AC-2013]


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Duplications d'enregistrements sous conditions
    Bonjour,

    Je bloque sur un problème : j'aimerais dupliquer des enregistrements dans une table sous certaines conditions.

    Dans une table, j'ai les champs suivant N°, Référence, quantité, indexé (oui/non).
    Quand "indexé" est égal à "Oui" et que quantité (Q) est supérieure à 1, je souhaite créer n (Q-1) enregistrements reprenant tous les champs et mettant à jour à 1 le champs quantité pour ces mêmes enregistrements !

    Avez vous une solution simple ?
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    en faite c'est beaucoup plus simple que ce que l'on croit et voici une solution possible si Q est un entier et toujours compris entre 0 et un extrême connu

    En première approximation je considère que N° est un numauto (si ce n'est pas le cas c'est possible de dupliquer sa valeur si besoin)

    Par exemple ici on sait que Q sera toujours < ou égale à 20 :
    1) Créer une table tNombre avec une colonne Nombre de type numérique Entier long qui est la clef primaire (pour éviter les doublons si erreur de frappe...)
    2) Peupler la table tNombre de 20 lignes avec les nombre de 2 à 20
    3) créer la requête suivante (nommée "rGenDupliq)" (nom des tables et des champs à modifier selon votre cas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT t2.Ref
    FROM tNombre AS t1, tdupliq AS t2
    WHERE t2.Idx=Yes AND t2.Q>1 AND t1.Nombre<=[Q]
    ORDER BY t2.Ref, t1.Nombre;
    Et la requête d'insertion dans la table tDupliq des nouveaux enregistrements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO tDupliq ( Ref, Q, Idx )
    SELECT r.Ref, 1 AS Q, Yes AS Idx
    FROM rGenDupliq AS r
    A tester l'ensemble avant de mettre en production !

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci
    Bonsoir,

    ça marche, un grand merci pour votre aide rapide ;-)

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

Discussions similaires

  1. [AC-2007] Requête SQL Ajout enregistrement sous condition
    Par pop.paki dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/08/2011, 17h17
  2. [AC-2007] Ajouter des enregistrement sous condition
    Par Gorane dans le forum IHM
    Réponses: 13
    Dernier message: 08/12/2010, 11h14
  3. [AC-2000] Suppression d'enregistrement sous condition
    Par Gabout dans le forum IHM
    Réponses: 5
    Dernier message: 21/07/2009, 11h46
  4. [AC-2000] Interdire la création d'enregistrement sous condition
    Par Gabout dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2009, 22h08
  5. Enregistrement sous condition
    Par RootsRagga dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/02/2008, 00h15

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