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

MySQL Discussion :

Calcul sous conditions


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut Calcul sous conditions
    Bonjour,

    Je viens vous demander de l'aide concernant une requête MySQL que j'ai besoin de faire.
    Je précise que je ne suis pas sûr que ce que je veux faire est techniquement possible.

    Les tables ne sont que des exemples mais elles illustrent parfaitement le besoin.

    J'ai deux tables :

    Table 1 :
    VALEURS
    id_valeur date_valeur montant1_valeur montant2_valeur seuil_valeur
    1 2015-01-23 2 1 4


    Table 2 :
    NOTES
    id_note id_element date_note
    1 1 2015-01-23
    2 1 2015-01-23
    3 1 2015-01-23
    4 1 2015-01-23

    Précisions :
    - J'ai besoin de calculer la valeur pour chaque élément.
    - Les valeurs (montant1, montant2, seuil) sont différentes pour chaque jour.
    - Chaque note pour avoir deux valeurs différentes. Une note est égale à montant1_valeur mais quand (nb_note * montant1_valeur) = seuil_valeur, une note devient égale à montant2_valeur.

    Dans l'exemple donné, l'élément 1 à 4 notes :
    - les deux premières : (notes 1 + notes 2) * montant1_valeur = 4.
    - Le seuil est de 4.
    - Donc les deux dernières notes : (notes 3 + notes 4) * montant2_valeur = 2.
    Donc la valeur calculé pour l'élément 1 est de 6.

    Je précise que j'aimerai faire cette requêtes avec Mysql uniquement, sans boucle PHP car le nombre de résultat (notes + éléments) pourra être lourd.

    Si quelqu'un à une idée de la possibilité de cette requête et pourrait m'orienter vers la fonction à utiliser.

    Je vous remercie.

    Julien

  2. #2
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Je dois avouer que je ne comprends pas grand chose à votre question.
    C'est très confus pour moi.

    Je n'arrive pas à comprendre la liaison entre la table 'Valeur" et la table "Notes".

    D'après votre table "Notes", un éléments peut avoir plusieurs notes. Chaque note peut avoir 2 valeurs. Soit.
    A priori,
    Une note est égale à montant1_valeur
    .
    Mais
    quand (nb_note * montant1_valeur) = seuil_valeur, une note devient égale à montant2_valeur.
    .

    Votre calcul semble faux : 4 notes * valeur1 = 4*2 = 8 n'est pas égale au seuil.

    A moins qu'en fait, vous introduisiez la notion de progression, et de cumul.
    Exemple :
    La note 1 arrive. Elle a la valeur 1 (=2). La somme (et non la multiplication) de la valeur de toutes les notes actuelle est égale à "2" : inférieure ou égale au seuil "4", donc, OK, la note 1 a bien la valeur 1.
    La note 2 arrive. Elle a la valeur 1 (=2). La somme de la valeur de toutes les notes actuelles est égale à : "2+2=4" : inférieure ou égale au seuil "4", donc, OK, la note 2 a bien la valeur 1.
    La note 3 arrive. Elle a la valeur 1 (=2). La somme de la valeur de toutes les notes actuelles est égale à : "2+2+2=6" : supérieur ou égale au seuil "4", donc la note 3 prend la valeur 2 ("1").
    La note 4 arrive. Elle a la valeur 1 (=2). La somme de la valeur de toutes les notes actuelles est égale à : "2+2+1+2=7" : supérieur ou égale au seuil "4", donc la note 4 prend la valeur 2 ("1").

    La valeur total est donc 2+2+1+1 = 6.

    Si c'est ce que vous voulez faire, je ne sais pas vraiment si c'est possible.
    Par contre, je me demande si le modèle de votre Base n'est pas erroné.

    Ainsi, je verrai plutôt la table "Note", avec "Valeur initiale" et "Valeur definitive".

    Bonne continuation.

    Pierre

Discussions similaires

  1. [PHP 5.2] Calcule sous condition dans un formulaire
    Par bryan1000ch dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2014, 14h44
  2. [XL-2003] Calcul sous conditions
    Par Corradi dans le forum Excel
    Réponses: 7
    Dernier message: 19/05/2014, 15h04
  3. Faire des calcules sous condition
    Par naim216 dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 01/07/2013, 15h15
  4. [XL-2007] effectuer un calcul sous condition
    Par chrnoe dans le forum Excel
    Réponses: 3
    Dernier message: 13/01/2010, 21h07
  5. [Excel] Calcul d'une somme sous condition
    Par netsabes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2006, 16h09

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