Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2011, 22h51   #1
Futur Membre du Club
 
Homme Sébastien Deloy
Responsable d'un service sociale
Inscription : janvier 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Deloy
Âge : 38
Localisation : Suisse

Informations professionnelles :
Activité : Responsable d'un service sociale
Secteur : Santé

Informations forums :
Inscription : janvier 2011
Messages : 39
Points : 18
Points : 18
Par défaut Arrondi sql pour un rabais 10%

Bonjour,
J'aimerais faire un arrondi monétaire pour cette requête SQL :

Code :
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...
smookyone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 09h15   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 441
Points : 6 441
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 :
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 :
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
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/01/2011, 15h37   #3
Futur Membre du Club
 
Homme Sébastien Deloy
Responsable d'un service sociale
Inscription : janvier 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Deloy
Âge : 38
Localisation : Suisse

Informations professionnelles :
Activité : Responsable d'un service sociale
Secteur : Santé

Informations forums :
Inscription : janvier 2011
Messages : 39
Points : 18
Points : 18
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 :
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 :
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...
smookyone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 21h56   #4
Futur Membre du Club
 
Homme Sébastien Deloy
Responsable d'un service sociale
Inscription : janvier 2011
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Deloy
Âge : 38
Localisation : Suisse

Informations professionnelles :
Activité : Responsable d'un service sociale
Secteur : Santé

Informations forums :
Inscription : janvier 2011
Messages : 39
Points : 18
Points : 18
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 :
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
smookyone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h22.


 
 
 
 
Partenaires

Hébergement Web