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] update sur plusieurs lignes


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Points : 153
    Points
    153
    Par défaut [SQL] update sur plusieurs lignes
    Bonjour,
    Je voudrais savoir comment faire pour avoir une requête SQL qui me permette d'updater plusieurs lignes mais en fonction du résultat de plusieurs lignes,...
    Un truc qui ressemble à une boucle, dans laquelle je mettrais la fonction : update "maTable" set "monChamp"= "monChamp" * 1,1
    Et j e ne sais pas comment faire ça,...

    Merci !!!

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Tu peux nous donner un exemple concrêt des conditions qui déterminent ton update ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Points : 153
    Points
    153
    Par défaut
    He bien en fait, j'ai une table door_price contenant 4 champs hauteur, largeur, price et i_door.

    Je veux faire en sorte d'augmenter de 10% tous les prix des tables ayant un i_door = 2,...

    C'est tout !!! (j'espère que c'est assez clair, sinon, je peux donner d'autres infos !)

    Merci

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Votre premier essai n'etait plutot pas mal
    Quelles sont les difficultés rencontrées lors de votre requete ?
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE maTable
    SET price = price * 1.1
    WHERE i_door = 2
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Hmmm, tout ce qui te manque, c'est de ne faire l'update que sur ceux qui ont i_door = 2 ?
    Ajoute le dans le WHERE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE TaTable
    SET price = price *1,1
    WHERE  i_door = 2
    L'update se fait sur un ensemble de lignes. Au départ, c'est juste toute la table TaTable, puis tu peux ajouter tout et n'importe quoi dans la condition WHERE.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  7. #7
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Points : 153
    Points
    153
    Par défaut
    Tout d'abord merci pour les réponses, j'ai bien fait ce que vous aviez dit, c'est à dire éxécuté la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE TaTable
    SET price = price *1,1
    WHERE  i_door = 2
    Et, ce qui m'étonne c'est que ça me donne la plupart du temps un 0, alors qu'avant c'était un 1230 ou plus, et, seuls quelques rares enregistrements (3 ou 4) ont survécu à ma requête et ce sont adaptés avec succès,

    J'aimerais augmenter le ratio et passer à 100% de réussite, mais je ne vois pas du tout à quoi ça peut-être dû,...

    PS: je travaille avec SQLite Maestro, au cas ou ça pourrait poser problème

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... j'avais tapé 1point1 et je vois que ça s'est écrit 1virgule1 !
    Le problème vient peut-être de là.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Points : 153
    Points
    153
    Par défaut
    oui, désolé, j'avais déja corrigé ce problème là, merci quand même

Discussions similaires

  1. Fonction Sql "INSERT,UPDATE" en vba sur plusieurs lignes
    Par darkjeje dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2013, 16h02
  2. UPDATE sur plusieurs lignes ?
    Par tintin72 dans le forum Requêtes
    Réponses: 9
    Dernier message: 02/01/2013, 17h28
  3. update sur plusieurs lignes avec table temporaire
    Par -=mateo=- dans le forum SQL
    Réponses: 3
    Dernier message: 23/12/2010, 14h40
  4. Réponses: 12
    Dernier message: 25/09/2007, 17h22
  5. Update sur plusieurs lignes
    Par JOUCHET dans le forum Oracle
    Réponses: 1
    Dernier message: 20/05/2006, 18h37

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