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 :

Mise à jour d'un seul champ avec critères


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Mise à jour d'un seul champ avec critères
    je veux réaliser une requête en mode création pour faire la modification suivante:
    le PU (prix unitaire) sera augmenter de 30% pour les PU>=300 et diminuer de 5% pour les PU<=100

    la table produit est la suivante:
    Produit (ID_Produit, Nom_Produit, PU, Qte_stk)

    et merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour, Bonjour, Bonjour, Bonjour,**

    Voici à quoi doit ressembler ta requête de mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Produit SET Produit.PU = IIf([PU]>=300,[PU]*1.3,IIf([PU]<=100,[PU]*0.95,[PU]));



    ** Normalement une fois suffit...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci
    Merci pour votre réponse elle s'exécute correctement.


  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 755
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    Bonsoir, bonsoir, bonsoir, bonsoir

    Citation Envoyé par ClaudeLELOUP Voir le message
    Voici à quoi doit ressembler ta requête de mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Produit SET Produit.PU = IIf([PU]>=300,[PU]*1.3,IIf([PU]<=100,[PU]*0.95,[PU]));


    Toutefois si la table comporte 1 000 000 de produits avec seulement une centaine dont [PU]<=100 ou [PU]>=300, il y aura tout de même 999 900 produits qui vont être balayés pour rien (avec deux iif imbriqués pour finalement remplacer [PU]...par [PU]). La mise à jour risque d'être longue...

    Dans ce cas, il vaut mieux enchaîner deux requêtes:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Produit SET [PU]=1.3*[PU] WHERE [PU]>=300;
    UPDATE Produit SET [PU]=0.95*[PU] WHERE [PU]<=100;

    d'un autre côté, je n'ai pas suffisamment de produits dans ma table pour vérifier ce que je raconte alors...

    un p'tit pour clore la discussion siouplai

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Toutefois si la table comporte 1 000 000 de produits...



    Merci Fabien !

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2014, 01h40
  2. Réponses: 15
    Dernier message: 12/12/2011, 17h07
  3. Réponses: 1
    Dernier message: 28/08/2007, 15h41
  4. Mise à jour dynamique d'un champs
    Par Badiste dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/10/2006, 15h18
  5. Réponses: 6
    Dernier message: 03/10/2006, 09h44

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