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

SQL Procédural MySQL Discussion :

Produit et pourcentage


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut Produit et pourcentage
    Bonjour,

    Comment gérer des produit qui changent de prix en fonction du nombre :

    Exemple :

    Prix unitaire = 10

    Entre 10 et 90 produit, on fait 4 % de réduction

    Et au dessus de 100, on fait 8 % de réduction.

    Comment représenter cela dans un table mysql.
    Suis-je obligé de passer par un script php pour faire le conversion ?

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut Re: Produit et pourcentage
    Citation Envoyé par sam01
    Suis-je obligé de passer par un script php pour faire le conversion ?
    Non, tu va voir...


    Citation Envoyé par sam01
    Comment gérer des produit qui changent de prix en fonction du nombre
    Tout d'abord, tu peux faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT
     
      prix_unitaire*quantite*
      IF(quantite<10,
        1,
     
        IF(quantite<=100,
          0.96,
          0.92
        )
      ) AS prix
    (note: quand on achète 90 produits, on a 4% de réduc, mais si on en achète 91, on a rien? Bizarre...)


    Citation Envoyé par sam01
    Comment représenter cela dans un table mysql.
    Beaucoup plus propre:

    Tu fais une table "reduction" avec comme champs:
    - quantiteMin
    - quantiteMax
    - pourcentage

    Ensuite, dans ton SELECT, tu fais une jointure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
      commande.quantite*produit.prixUnitaire*(1-reduction.pourcentage/100) AS prix
     
    FROM commande
    INNER JOIN produit ON (commande.produitId=produit.produitId)
     
    INNER JOIN reduction
    ON (reduction.quantiteMin <= commande.quantite AND commande.quantite <= reduction.quantiteMax)
    Attention quand même à ce que les intervalles [quantiteMin, quantiteMax] ne se chevauchent pas. Préciser également les quantités pour lesquelles tu as 0% de réduction.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. [AC-2003] problème de produit pourcentage dans une requête
    Par hocine dans le forum IHM
    Réponses: 2
    Dernier message: 22/03/2010, 11h03
  3. [info]Licence des produits Java
    Par XavierZERO dans le forum Général Java
    Réponses: 12
    Dernier message: 16/01/2004, 16h27
  4. [Dev-Pascal] Ne produit pas d'exe
    Par portix dans le forum Autres IDE
    Réponses: 8
    Dernier message: 02/07/2003, 15h14
  5. [Algorithme] Pourcentage de similitude de 2 fichiers
    Par Magy_4 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/11/2002, 22h42

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