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 :

[SQL] Duplication de lignes avec un ID différent


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de neuropathie
    Inscrit en
    Janvier 2005
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 223
    Points : 201
    Points
    201
    Par défaut [SQL] Duplication de lignes avec un ID différent
    Bonjour,


    Voilà g une table avec 3 colonnes, il faudrait que j'arrive à sélectionner les éléments concernant un certain ID et que je les copies pour d'autres ID tout en vérifiant si il existe pour le nouveau ID ou pas, comment faire?

    petit exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               ID    Cours         Cod
             === ========  =====
               F     Compta        V
               F     FInance       M
               F     Supply         V
               F     Market         V
               J
               K
               Z
    EN fait c'est qu'il s'agit de faire suivant l'exmple c'est de copier le contenu des lignes F (4 lignes) pour à la fin avoir lignes pour J, 4 lignes pour l'id K et 4autres pour l'ID Z toujours avec le même contenu que pour l'ID F

    est ce que quelqu'un pourrait m'aider?

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    ton ID n'est pas unique... quelle est ta règle de génération de l'ID? A, B, C, D?
    habituellement on utilise les sequence d'entier pour générer des identifiant.

    y a t'il possibilité de passer à des entier? ou souhaite tu rester avec des lettres...

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    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 099
    Points : 28 390
    Points
    28 390
    Par défaut
    Il faut donc faire un produit cartésien (1) entre le contenu des lignes dont la colonne ID à la valeur 'F' (2) et la liste des valeurs de ID (3), et ne retenir que les lignes qui n'existent pas déjà dans la table (4) :
    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
    18
    SELECT  lst.id
        ,   src.cours
        ,   src.cod
    FROM    matable AS src -- 2
        CROSS JOIN  -- 1
            (   SELECT  id
                FROM    matable
                GROUP BY id 
            )   AS lst -- 3
    WHERE   src.id  = 'F' -- 2
        AND NOT EXISTS -- 4
            (   SELECT  0
                FROM    matable AS ver
                WHERE   ver.id      = lst.id
                    AND ver.cours   = src.cours
                    AND ver.cod     = src.cod
            )
    ;

  4. #4
    Membre actif Avatar de neuropathie
    Inscrit en
    Janvier 2005
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 223
    Points : 201
    Points
    201
    Par défaut
    Merci pour ton aide Al1_24, maintenant je me demande comment faire pour insérer le résultat dans la même table toujours en une seule requête mais avec une petite modification c'est que en insérant ces données la troisième colonne que je vais insérer qui est cod devra toujours contenir la valeur V pour toutes les lignes insérées.

    Merci une autre fois.

  5. #5
    Membre actif Avatar de neuropathie
    Inscrit en
    Janvier 2005
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 223
    Points : 201
    Points
    201
    Par défaut
    juste une remarque, la requête ne marche pas, quand je fais le select le premier ID qu'elle traite c'est bon elle me renvoie les lignes manquantes, pour les autres elle fait plus de différence

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2013, 12h21
  2. Alimenter la meme ligne avec deux job différents
    Par DécisionBI dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 25/07/2013, 09h53
  3. Réponses: 16
    Dernier message: 26/01/2011, 16h32
  4. [VB6][SQL] Ouvrir mon application avec 2 profils différents
    Par angus9 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/12/2010, 16h21
  5. Comparaison de valeur de ligne avec deux feuilles différentes
    Par charlix dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2008, 15h54

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