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 MySQL Discussion :

Arrondi sql pour un rabais 10%


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par défaut Arrondi sql pour un rabais 10%
    Bonjour,
    J'aimerais faire un arrondi monétaire pour cette requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT now() AS date, ((panier_panier.total_ttc/panier_panier.rabais_d)*panier_panier.rabais_m) AS total_ttc, ((panier_panier.total_ht/panier_panier.rabais_d)*panier_panier.rabais_m) AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    Est-ce que quelqu'un pourrait me la refaire pour que j'ai un arrondi monétaire, c'est à dire à 0.05ct ?
    Cette requête calcule un rabais carte client avec un pourcentage.

    Un grand merci d'avance...

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Peut-être en utilisant la fonction ROUND ?
    Je ne suis pas certain de bien comprendre ce que tu entends par un arrondi à 0.05 ct... Quelques exemples ?

    Avec la fonction ROUND toute simple, on obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT now() AS date, ROUND((panier_panier.total_ttc/panier_panier.rabais_d)*panier_panier.rabais_m, 2) AS total_ttc, 
    ROUND((panier_panier.total_ht/panier_panier.rabais_d)*panier_panier.rabais_m, 2) AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    Ça donne un arrondi au centime près...

    Si ce sont des arrondis de 0.05 en 0.05, il faut ruser un peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT now() AS date, ROUND((panier_panier.total_ttc/panier_panier.rabais_d)*panier_panier.rabais_m / 0.05, 0) * 0.05 AS total_ttc, 
    ROUND((panier_panier.total_ht/panier_panier.rabais_d)*panier_panier.rabais_m / 0.05, 0) * 0.05 AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par défaut Génial
    Trop trop bien, ça fonctionne à merveille merci, c'que vous êtes des pro sur ce forum, c'est incroyable.

    Pour ma part je suis très novice dans ce domaine, ce que j'ai appris je l'ai appris seul à la maison, je n'ai pas fait d'étude dans ce domaine, donc votre aide est la plus appréciable MERCI !!!

    J'en ai encore juste une que j'ai essayé de bidouiller avec vos exemples, mais je n'arrive pas à la recréer, c'est une du même genre mais pour un total avec une requête en plus, le problème vient sûrement des paracentèse, je m'en sort pas, pouvez-vous m'aidez svp ?

    la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT now() AS date,   (panier_panier.total_ttc-((panier_panier.total_ttc/panier_panier.rabais_d)*panier_panier.rabais_m)) AS total_ttc,  (panier_panier.total_ht- ((panier_panier.total_ht/panier_panier.rabais_d)*panier_panier.rabais_m)) AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    je pensais la réaliser comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT now() AS date,  
    ROUND(panier_panier.total_ttc-((panier_panier.total_ttc/panier_panier.rabais_d)*panier_panier.rabais_m) / 0.05, 0) * 0.05 AS total_ttc,   
    ROUND(panier_panier.total_ht-((panier_panier.total_ht/panier_panier.rabais_d)*panier_panier.rabais_m) / 0.05, 0) * 0.05 AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    mais le total ne me donne pas juste, en faite, ça doit me donner le total moin le pourcentage de l'ancienne requête que vous m'avez proposer...

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par défaut
    Finalement quand on cherche un peu, on trouve

    Je me suis creuser un peu la tête et j'ai trouvé la réponse là voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT now() AS date,  ROUND((panier_panier.total_ttc-((panier_panier.total_ttc/panier_panier.rabais_d))*panier_panier.rabais_m) / 0.05, 0) * 0.05 AS total_ttc,   ROUND((panier_panier.total_ht-((panier_panier.total_ht/panier_panier.rabais_d))*panier_panier.rabais_m) / 0.05, 0) * 0.05 AS total_ht
    FROM panier_panier
    WHERE panier_panier.client = paramclient
    mais merci quand même pour votre précieuse aide
    Salutations

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

Discussions similaires

  1. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 17h16
  2. CODE RETOUR GENERE PAR PL/SQL POUR SHELL UNIX
    Par mimi_été dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/11/2004, 08h32
  3. mot clef sql pour nom de champ
    Par bobinou007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 13h21
  4. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06
  5. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

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