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 :

update multiple dans une meme colonne


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut update multiple dans une meme colonne
    Bonjour,

    J'ai une question:
    Est il possible de faire un update multiple dans une meme colonne ?

    Par exemple, j'ai un champ "numero".
    Tous les numéros 10 deviennent 20.
    Tous les numéros 20 deviennent 30.

    Je ne peux pas faire 2 requetes update successives car sinon, je me retrouve qu'avec des numéros 30 à la fin !

    Si ce n'est pas possible de faire un update multiple, il faudra que je passe par des intermédiares :
    10 devient 15
    20 devient 25
    15 devient 20
    25 devient 30

    voilà
    merci

  2. #2
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Hum...

    Tu n'as pas respecté les règles du forum (notamment en ce qui concerne ton SGBD, sa version, etc.) mais je peux quand même essayer de t'aider.

    Etant donné ton exemple simplifié, je te propose d'adapter cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE MyTABLE
    SET MyCOL = MyCOL + 10;
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    salut,

    deja merci d'avoir répondu.

    je travaille sur access 2000. Mais comme je crois que mon probleme est du sql, je n'ai pas posé ma question dans le forum access.

    mon exemple était très simplifié pour que ça soit compréhensible, mais en fait, ça n'augmente pas de 10 à chaque fois. Il n'y a pas de règle. 21110 devient 31250, 10101 devient 20101...

    donc est il possible dans un unique update de mettre l'ensemble des couples anciennes valeurs/nouvelles valeurs ?

    merci

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Je ne sais pas si cela fonctionne avec ACCESS, mais j'essaierais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE laTable
    SET leChamp = CASE WHEN leChamp = 21110 THEN 31250
                       WHEN leChamp = 10101 THEN 20101
                       ELSE leChamp
                  END
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par debdev
    salut,
    mon exemple était très simplifié pour que ça soit compréhensible, mais en fait, ça n'augmente pas de 10 à chaque fois. Il n'y a pas de règle. 21110 devient 31250, 10101 devient 20101...
    donc est il possible dans un unique update de mettre l'ensemble des couples anciennes valeurs/nouvelles valeurs ?
    merci
    S'il n'y a pas de règle, il n'y aura non plus de solutions !
    Ne nous engage pas dans une serie d'invariant !

    Vous devez identifier tous les couples (Ancienne valeur,Nouvelle valeur)
    Et nous vous proposerons une solution.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Je n'ai pas compris ta réponse. Il n'y a pas de règles dans mes modifications à faire. Je veux juste savoir si en sql avec access, on peut faire un update qui met à jour un ensemble de couples ancien/nouveau qui appartiennent tous à un meme champ.

    Je peux citer 3 de mes modifications à faire mais il y en a toute une liste. Mais ça ne changera rien à la requete: si c'est possible pour 2 couples, ça le sera pour plusieurs.

    exemple:
    ancienne valeur/nouvelle valeur
    319 / 323
    323 / 101
    101 / 221

    Si je ne peux faire que des updates séparés, il faut que je passe par des intermédiaires.

    exemple:
    1er update : 319 / 319323
    2eme update : 323 / 323101
    3eme update : 101 / 101221
    4eme update : 313323 / 323
    5eme update : 323101 / 101
    6eme update : 101221 / 221

    J'ai testé la solution de mediat mais ça ne marche pas sous access

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Voici une ébauche de solution :

    Créer une table T_Couple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Create Table T_Couple(Ancien float, Nouveau float);
    Peupler la Table de couple de valeurs possibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO T_COUPLE VALUES(319,323) ;
    INSERT INTO T_COUPLE VALUES(323,101) ;
    INSERT INTO T_COUPLE VALUES(101,221) ;
    ....
    ....
    ....
    ....
    INSERT INTO T_COUPLE VALUES(221,305) ;--Par Exemple
    Ensuite, une requête de mise à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE T_Table
    SET VAL=C.NOUVEAU
    FROM T_COUPLE C
    WHERE VAL=C.ANCIEN
    Bonne chance

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    merci beaucoup.
    je n'avais pas du tout pensé à cette méthode.
    a+

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/07/2009, 14h35
  2. recherche dans une meme colonne
    Par INCO13 dans le forum Excel
    Réponses: 1
    Dernier message: 15/03/2009, 16h03
  3. ValidationGroup multiple dans une meme page
    Par tortuegenie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 06/05/2008, 12h02
  4. lien ou text dans une meme colonne d'un gridview
    Par tbess dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/11/2007, 17h19
  5. des combos differentes dans une meme colonne d'une Jtable
    Par mickael.guilbert dans le forum Composants
    Réponses: 2
    Dernier message: 13/05/2006, 11h31

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