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 :

problème de soustraction dans une requête


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut problème de soustraction dans une requête
    Bonjour

    J'ai la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE classements SET
    cl_nb_matches = cl_nb_matches + 1,  
    cl_defaites = cl_defaites + 1, 
    cl_buts_pour = cl_buts_pour + 2, 
    cl_buts_contre = cl_buts_contre + 5, 
    cl_diff_buts = cl_buts_pour - cl_buts_contre, 
    cl_pts = cl_victoires * 2 + cl_nuls * 1 - cl_pts_penalite 
    WHERE fkeq_id='198' AND fkgr_id='16'
    Elle me permet de mettre à jour le classement d'un tournoi. Le problème viens de la ligne en gras. Quand le résultat de la soustraction est négatif la valeur enregistré vaut toujours 32767.

    D'après ce que j'ai pu comprendre c'est parce que je soustrais deux unsigned. Y-a-t-il une solution à part définir les deux colonnes en unsigned ? Je précise aussi que je n'ai pas accès à la configuration du serveur.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 034
    Points : 23 779
    Points
    23 779
    Par défaut
    Citation Envoyé par JuTs Voir le message
    D'après ce que j'ai pu comprendre c'est parce que je soustrais deux unsigned. Y-a-t-il une solution à part définir les deux colonnes en unsigned ? Je précise aussi que je n'ai pas accès à la configuration du serveur.
    Le problème doit plutôt venir de la définition de la colonne cl_diff_buts qui doit être UNSIGNED (ce qui signifie qu'elle n'accepte pas les valeurs négatives).
    Si tu ne peux pas changer la configuration de ta base de données (et donc que tu ne peux pas repasser la colonne en SIGNED), ta seule solution est alors de ne pas stocker la différence de buts, mais de la recalculer systématiquement à partir du nombre de buts inscrits et du nombre de buts encaissés.

    ced

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    non, non, cl_diff_buts est bien "SIGNED".
    En revanche cl_buts_pour et cl_buts_contre sont UNSIGNED. Ce qui est logique, je vois mal une équipe marquer ou recevoir -x buts

    En cherchant sur le site de MySQL, j'ai trouvé deux solutions. La première mettre mes ces deux colonne en SIGNED. La deuxième est de paramétrer MySQL de façon à ce que ce genre d'opérations soient effectuée de la même façon que MySQL 4.x (version avec laquelle ma requête fonctionne).

    Le problème est donc résolu puisque je n'ai pas le choix

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

Discussions similaires

  1. Problème de précision dans une requête
    Par Le Pharaon dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/08/2006, 14h16
  2. Problème de décimales dans une requête
    Par pellec dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 21/07/2006, 08h15
  3. [10g] Problème de privilège dans une requête
    Par hotkebab99 dans le forum Oracle
    Réponses: 6
    Dernier message: 01/03/2006, 12h00
  4. Problème de perfomances dans une requête
    Par claralavraie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/01/2006, 14h25
  5. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 14h17

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