Page 1 sur 1

Calcul sous SQL

Posté : 29 févr. 2008, 02:30
par lacfab
Bonsoir,

Voilà j'ai un ami qui a une boutique en ligne et qui me demande de lui faire une requete pour sa base de donnée afin d'ajouter 10% à chaque prix.

Est ce possible ?

Merci d'avance.

Posté : 29 févr. 2008, 02:36
par h0_noMan
Essayes cela :

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*110/100 // *110/100 Pour 10% // *120/100 Pour 20% // etc..

Posté : 29 févr. 2008, 02:53
par Sékiltoyai
Mouarf, après on vient parler du pouvoir d'achat :D

Posté : 29 févr. 2008, 03:15
par AB
Mouarf, après on vient parler du pouvoir d'achat :D
L'a raison Sékiltoyai, conseilles plutôt

UPDATE MaTable SET MonChamp=MonChamp*90/100

Faut bien que certains se dévouent. Allez lacfab rentre en résistance :D

Posté : 29 févr. 2008, 03:18
par lacfab
merci bien c'est si simple que j'en ai honte !

Posté : 29 févr. 2008, 05:41
par Patriboom
Pourquoi ne pas faire plus simple encore et multiplier par une valeur avec décimales:

90% = 0.90
+10% = 110% = 1.1

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*0.75 // moins 25% UPDATE MaTable SET MonChamp=MonChamp*0.80 // moins 20% UPDATE MaTable SET MonChamp=MonChamp*0.85 // moins 15% UPDATE MaTable SET MonChamp=MonChamp*0.90 // moins 10% UPDATE MaTable SET MonChamp=MonChamp*0.95 // moins 5% UPDATE MaTable SET MonChamp=MonChamp*1.05 // plus 5% UPDATE MaTable SET MonChamp=MonChamp*1.10 // plus 10% UPDATE MaTable SET MonChamp=MonChamp*1.15 // plus 15% UPDATE MaTable SET MonChamp=MonChamp*1.20 // plus 20% UPDATE MaTable SET MonChamp=MonChamp*1.25 // plus 25%
Et pourquoi pas un demi-prix?

Code : Tout sélectionner

UPDATE MaTable SET MonChamp=MonChamp*0.5
Là, tu parles!


Est-ce que les multiplications par décimales sont moins performantes qu'une multiplication suivie d'une division (question technique sérieuse) Il me semble qu'une opération soit plus rapide à faire que deux, non?

Posté : 29 févr. 2008, 13:12
par Sékiltoyai
La multiplication avec décimales demandera une opération de multiplication en assembleur, et la multiplication+division demande la multiplication et la division en assembleur, sachant que ces opérations demandent à peu près le même nombre d'instructions, et ce sera la même chose côté sql.

Donc l'opération demandera un peu moins de deux fois de temps pour la multiplication + division que pour la multiplication seule, qu'elle soit flottante ou non…

Posté : 29 févr. 2008, 16:00
par Patriboom
Merci,c'est bon à savoir que - parfois - l'ordinateur sait faire les choses de la même manière que l'humain, permettant ainsi d'avoir un code clair et lisible.