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 :

Une simple multiplication ne se comporte pas comme je l'attends !


Sujet :

Requêtes MySQL

  1. #1
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut Une simple multiplication ne se comporte pas comme je l'attends !
    Bonjour tout le monde !

    Comment une requête aussi basique peut-elle me retourner une erreur systématique ?

    Je m'explique j'ai impact_val (valeur de l'impact) qui vaut 2, et ressenti_note qui vaut 10, par exemple, je voudrais récupérer une note coefficientée de.. 20 bien sûr... Et ça va me retourner 22... Systématiquement, il me retourne impact_val * ressenti_note + impact_val...

    Bizarre pour moi !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select distinct ressenti_id,event_desc,emotion_pole,impact_val,ressenti_note,
    case 
      when emotion_pole="+" then impact_val * ressenti_note
      when emotion_pole="-" then -1 * impact_val * ressenti_note
    end as ressenti_solde
    from v_mysself
    Images attachées Images attachées  
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 515
    Par défaut
    Bonjour,
    Est-ce que cette requête renvoie le bon résultat ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select distinct ressenti_id,event_desc,emotion_pole,impact_val,ressenti_note,impact_val * ressenti_note * (case when emotion_pole = "+" then 1 else -1 end) as ressenti_solde
    from v_mysself
    Tatayo.

  3. #3
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Non, tatayo. Exactement le même rendu. Là, faut que j'y aille, mais je vais vérifier (encore) que ma vue de départ n'est pas complètement folle.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Pour info, mais ça m'étonnerait que ça ait le moindre rapport, la construction de la vue v_mysself (mysself n'est pas une faute, j'ai voulu abréger my small self)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    create or replace view v_mysself as
    select ev.id as event_id,
    u.id as user_id,
    u.civ as user_civ,
    u.nom as user_nom,
    u.prenom as user_prenom,
    u.mail as user_mail,
    u.naissance as user_naissance,
    i.id as impact_id,
    i.libelle as impact_lib,
    i.valeur as impact_val,
    d.id as domaine_id,
    d.libelle as domaine_lib,
    ev.descriptif as event_desc,
    ev.quand as event_quand,
    ev.fini as event_fini,
    r.id as ressenti_id,
    em.id as emotion_id,
    em.libelle as emotion_lib,
    em.pole as emotion_pole,
    r.note as ressenti_note,
    r.quand as ressenti_quand
    from event ev
    inner join user u on ev.user_id=u.id and u.desinscription is NULL
    inner join domaine d on ev.domaine_id=d.id
    inner join impact i on ev.impact_id=i.id
    inner join ressenti r on r.event_id=ev.id
    inner join emotion em on r.emotion_id=em.id
    J'en perds totalement mon latin... On a bien 2 numériques genre a*b, et il me retourne a*b+a... Je n'ai pas le commencement du début d'une explication !
    Je dois encore sortir, en rentrant, je tenterai ceci : attaquer la vue depuis la table ressenti, car un événement qui n'a pas provoqué une saisie dans la table ressenti n'a pas d'intérêt. Mais je ne vois pas ce que ça changerait pour mon calcul de ressenti_solde. Il y aurait toujours 15 tuples à la vue.

    Commentaire pour les curieux : J'essaie de modéliser les événements qui peuvent nous arriver, et nos ressentis, selon qui ils impactent, selon la force de nos émotions... pour calculer un solde des ressentis. Je profite de mes vacances pour modéliser des trucs auxquels je pense durant l'année.

    edit : contrairement à ce que j'ai dit, ressenti_note est un enum de '0' à '10'... Je vais déjà changer cela (et le passer en integer 2) pour voir si c'est le fond du problème. Car un cast(... as unsigned) ne passe pas...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bon, ben le problème venait de là :

    edit : contrairement à ce que j'ai dit, ressenti_note est un enum de '0' à '10'... Je vais déjà changer cela (et le passer en integer 2) pour voir si c'est le fond du problème. Car un cast(... as unsigned) ne passe pas...
    Tout fonctionne quand je passe ressenti_note à int 2...
    Pardon du dérangement Tatayo et merci d'avoir réfléchi avec moi.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. [EJB Stateful] EJB stateful ne se comporte pas comme tel
    Par Yiempia dans le forum Java EE
    Réponses: 5
    Dernier message: 01/02/2013, 12h44
  2. [RegEx] Regex simple mais qui ne fonctionne pas comme il faut
    Par yagami77 dans le forum Langage
    Réponses: 1
    Dernier message: 09/01/2011, 00h27
  3. Obtenir une liste de fichier ne comportant pas le chemin
    Par Michel Landrain dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 14/10/2008, 02h41
  4. Réponses: 1
    Dernier message: 01/08/2008, 10h34
  5. [MySQL] Une simple multiplication par 1000 !
    Par Christophe Charron dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 23/09/2007, 13h34

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