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

Langage SQL Discussion :

Comment passer d'une valeur à une autre par une formule mathématique ?


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut Comment passer d'une valeur à une autre par une formule mathématique ?
    Bonjour,

    Dans la base de données de mon site e-commerce, j'ai la valeur d'achat de mes produits "cost" et le prix de vente affiché sur le site "price".

    J'aimerais d'une seule manipulation pouvoir appliquer une formule mathématique pour remplir automatiquement mes champs "price" en partant de "cost".

    Je m'explique, si par exemple j'ai un article dans ma base avec la valeur "cost" = 1 et la valeur "price" est vide.
    Je veux taper une requête SQL qui me donnerait la valeur "price" avec la formule suivante:
    price=4,42*cost^(-0,1)
    -->> en littéral 4,42 mutiplié par la valeur "cost" exposant (-0,1)

    Pas évident à expliquer, mais j'espère que vous pourrez m'aider, car j'ai environ 500 prix à modifier.
    Merci.

    Cordialement,

    Guillaume.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    J'aimerais d'une seule manipulation pouvoir appliquer une formule mathématique pour remplir automatiquement mes champs "price" en partant de "cost".
    Je pense que la colonne Cost et Price sont dans la même table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE NomTable SET PRICE = COST * 4.42^(0,1) WHERE PRICE = 0 OR PRICE IS NULL
    Je ne sais pas pourquoi, tu veux utiliser l'exposant (0,1) car je n'en comprends l'utilité. Il faudra adapter le calcul avec ta base de données qui m'est inconnue, je serais surpris que 4.42^(0,1) ne présente pas une erreur lors du traitement.

    Bon courage

  3. #3
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    c'est faciiiiiile

    tu mets :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE NomTable SET PRICE = cost*exp(-0.1*ln(4.42))
    WHERE PRICE = 0 OR PRICE IS NULL
    sachant que cost est un champ.
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    UPDATE NomTable SET PRICE = cost*exp(-0.1*ln(4.42))
    Je veux bien, mais il me paraît étonnant d'utiliser une formule aussi complexe pour obtenir un prix de vente à partir d'un prix d'achat. Dans la vie de tous les jours, les commerçants se limitent à un simple multiplication du prix d'achat par un coefficient avec un arrondi à € ou au 1/10 €.

    @guillaume7684 doit savoir ce qu'il veut obtenir.

    A+

  5. #5
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par seabs Voir le message
    Bonjour,

    Je veux bien, mais il me paraît étonnant d'utiliser une formule aussi complexe pour obtenir un prix de vente à partir d'un prix d'achat. Dans la vie de tous les jours, les commerçants se limitent à un simple multiplication du prix d'achat par un coefficient avec un arrondi à € ou au 1/10 €.

    @guillaume7684 doit savoir ce qu'il veut obtenir.

    A+
    Nous sommes dans le forum le developpez.net et pas dans une supermarche.

    Que font les commerçants dans ce site. Et d'où ont ils apris le SQL.

    Je porte aux connaissances des non commerçants que l'exposant ou la

    puissance (^) n'existe pas dans le SQL, mais à travers une formule mathématique on déduit l'exposant.

    expemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4.42^(-0.1)=e( log(4.42^(-0.1)) )
     
                    =e(-0.1*log(4.42))
    et elle se traduit en SQL comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    4.42^(-0.1)=exp( -.01*ln(4.42) ).
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par islamov2000 Voir le message
    Je porte aux connaissances des non commerçants que l'exposant ou la puissance (^) n'existe pas dans le SQL
    Mais comme on est sur le forum développez.com, avant de distribuer la connaissance il faut commencer par s'enquérir sur le sujet.

    Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select power(5,-0.1) from dual;
     
    .851339922520784603355765922715152345425
    SQL-Server :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select power(cast(5 as float),-0.1);
     
    ----------------------
    0,851339922520785
    PostGreSQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select power(5,-0.1);
     
    0.8513399225207846

  7. #7
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Merci Waldar pour info.
    à partir de quelle version supporte la fonction power
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    @islamov2000

    Nous sommes dans le forum le developpez.net et pas dans une supermarche.
    Que font les commerçants dans ce site. Et d'où ont ils apris le SQL.
    Je ne vois pas la nécessité d'un tel commentaire, il ne sera d'aucune utilité à @guillaume7684

    D'autant que pour trouver le prix de vente, je ne pense pas opportun de multiplier le prix d'achat par 0,862 - Power(4.42, -0.1).

    Ecrire du SQL ne veut pas dire sortir des calculs inutilisables en pratique ou qui présente des prix de vente inexacts

    A plus

  9. #9
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    je m'excuse pour le commentaire, seabs.
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  10. #10
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par seabs Voir le message
    Je veux bien, mais il me paraît étonnant d'utiliser une formule aussi complexe pour obtenir un prix de vente à partir d'un prix d'achat. Dans la vie de tous les jours, les commerçants se limitent à un simple multiplication du prix d'achat par un coefficient avec un arrondi à € ou au 1/10 €.
    En même temps, dans "la vie de tous les jours", les petits commerçants n'ont pas forcément une base de données pour gérer leurs prix.
    Quant aux grandes surfaces, elles ont en effet des BDD (parfaitement colossales, d'ailleurs, sur les grandes enseignes), et les méthodes dites de "pricing" sont plutôt opaques, et peuvent faire intervenir tout type de formule aussi arbitrairement compliquée que souhaitée.

    @guillaume7684 doit savoir ce qu'il veut obtenir.
    Là dessus, je suis d'accord, mais il se trouve justement que le posteur originel a fait une demande claire incluant l'utilisation de la puissance, à laquelle répond @islamov2000 - même si en l'occurence le passage par exp & log est inutile.
    On peut tout à fait l'interpeller sur la nécessité d'utiliser une telle formule, pour autant je ne vois pas de raison d'aller vers ce genre de commentaire :
    Ecrire du SQL ne veut pas dire sortir des calculs inutilisables en pratique ou qui présente des prix de vente inexacts

  11. #11
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,

    Je pense qu'outre la nécessité ou non de connaître ces détails, ça attise la curiosité, et comme on vient apporter une solution, on peut aussi poser gentiment la question.

    power(x, -0.1) est une fonction décroissante de x, ce qui veut dire que plus le coût est élevé, plus le prix est bas.
    Bref, moi je veux le nom de ce commerce pour pouvoir aller faire mes courses

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Bonsoir,

    Je suis désolé ne ne pas être revenu plus tôt, mais je n'ai pas été averti par mail qu'il y avait des réponses !!!

    Je lis toutes les réponses et reviens vers vous.
    Merci.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par seabs Voir le message
    Bonjour,



    Je veux bien, mais il me paraît étonnant d'utiliser une formule aussi complexe pour obtenir un prix de vente à partir d'un prix d'achat. Dans la vie de tous les jours, les commerçants se limitent à un simple multiplication du prix d'achat par un coefficient avec un arrondi à € ou au 1/10 €.

    @guillaume7684 doit savoir ce qu'il veut obtenir.

    A+
    Bonsoir,

    En effet ma demande peut paraitre louche, mais je ne veux pas appliquer la même marge selon si le prix d'achat d'un produit est 0,05€ ou alors de 50€.
    Car je conçois bien de vendre 100€ un article acheté 50€, mais pas vendre 0,10€ un article acheté 0,05€ !!!

    Du coup je veux appliquer une marge dégressive plus le prix d'achat augmente. Et cela grâce à une formule avec exposant.

    Surtout que cette formule sera modifiée à chaque opération d'import, car beaucoup de paramètre influence mon prix d'achat: taux de change, transit en bateau, douanes, ...

    Alors je vois que vous m'avez proposé pas mal de formule, mais avant de les essayer une à une, les avez-vous essayé?

    Merci beaucoup pour votre participation.

    Cordialement,

    Guillaume.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par pacmann Voir le message
    Salut,

    Je pense qu'outre la nécessité ou non de connaître ces détails, ça attise la curiosité, et comme on vient apporter une solution, on peut aussi poser gentiment la question.

    power(x, -0.1) est une fonction décroissante de x, ce qui veut dire que plus le coût est élevé, plus le prix est bas.
    Bref, moi je veux le nom de ce commerce pour pouvoir aller faire mes courses
    Bonjour,

    Non, en fait plus le prix d'achat est élevé et plus la marge est faible, avec une marge minimum bien sure. Mais je définis une courbe et la formule avant sur excel.

    Merci.

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    En effet ma demande peut paraitre louche, mais je ne veux pas appliquer la même marge selon si le prix d'achat d'un produit est 0,05€ ou alors de 50€.
    Car je conçois bien de vendre 100€ un article acheté 50€, mais pas vendre 0,10€ un article acheté 0,05€ !!!
    Je comprends ta démarche, mais la réponse faite ne répond pas à ton souhait car pour un article acquis 50 €, nous aurons un prix de vente de 2,989 € (Sauf erreur de ma part). Ce n'est certainement pas le but recherché.

    Si tu pouvais donner la formule que tu utilises sur Excel, nous pourrions l'adapter en SQL.

    A+

  16. #16
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En fait, j'ai l'impression que c'est la formule de calcul de la marge et non pas du prix.
    Et si c'est le cas, ça fait quand même une marge faible et encore plus faible quand le coût est élevé. Bizarre comme gestion !

    Quand je travaillais dans une entreprise d'installation électrique, la direction nous indiquait chaque année un taux de marge objectif sous lequel il ne fallait pas descendre, sauf cas exceptionnels, et qui correspondait à la couverture des coûts de structure (bâtiments, personnel non productif, énergie...). La négociation commerciale commençait en principe après avoir appliqué ce taux de marge minimum au prix de revient (matière + personnel sur le projet).
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    @CinePhil: en effet tu as raison ma formule donne bien la marge à applique à mon prix d'achat.

    @seabs: voilà la formule exacte: price = cost*(4,44*cost^(-0,1))

    Exemple: si mon coût d'achat est de 0,05€ le prix de vente sera de 0,30€
    Exemple: si mon coût d'achat est de 50€ le prix de vente sera de 150€

    Merci.

  18. #18
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... pour 50 euros de coût, je calcule 191,25 € de prix.

    En plus, tu as écrit précédemment :
    Car je conçois bien de vendre 100€ un article acheté 50€, mais pas vendre 0,10€ un article acheté 0,05€ !!!
    Et dans le dernier message :
    Exemple: si mon coût d'achat est de 0,05€ le prix de vente sera de 0,30€
    L'inflation est galopante dans ton pays !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 37
    Points
    37
    Par défaut
    Dans mon premier message, les valeurs étaient juste à titre d'exemple.

    Pour moi: 4,44*50^(-0,1)=3

    Merci.

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Ta première formule était
    et la seconde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    price = cost*(4,44*cost^(-0,1))
    Ce qui n'est pas la même chose

    Même avec la nouvelle formule, nous n'arrivons pas à tes exemples

    Exemple: si mon coût d'achat est de 0,05€ le prix de vente sera de 0,30€
    Exemple: si mon coût d'achat est de 50€ le prix de vente sera de 150€
    Si j'ai compris, tu veux utiliser une marge dégressive, c'est-à-dire plus le prix d'achat est élevé plus le taux de marge est faible (Article à 50 € vendu 150 soit taux de marge 66 %) et inversement pour prix d'achat plus faible (Article à 0,05 € vendu 0,30 € soit marge 83 %)

    Mon explication est-elle en conformité avec tes souhaits ?

    Enfin là, nous ne sommes plus dans le bon forum, car il n'y a pas un souci SQL qui me semble résolu, mais simplement une difficulté de calcul du prix de vente

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/02/2014, 09h15
  2. affecter une valeur à un id par une fonction
    Par schwarzy2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 17/03/2008, 09h51
  3. Réponses: 4
    Dernier message: 06/07/2007, 13h57
  4. Réponses: 2
    Dernier message: 08/10/2006, 11h44

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