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

SQL Procédural MySQL Discussion :

affichage selon valeur entiere ou decimale


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut affichage selon valeur entiere ou decimale
    Bonjour

    Dans une table j'ai l'attribut NbAnneesExp en float(3,1)
    Dans l'affichage, j'aimerai que quand la valeur est entiere, soit de type 12,0, cela n'affiche que 12. Pour les valeurs vraiment décimales, que ça affiche quand même la décimale.

    Existe-t-il un moyen de le faire ?
    Merci

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    De manière bien lourde en transformant en string puis en utilisant la fonction TRUNCATE

  3. #3
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Bonjour,

    Je te propose une solution utilisant TRUNCATE(X,D) pour des entiers X et un nombre de décimal D.

    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
     
    mysql> SET @X = 20.7;
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> SELECT ELT( (CEIL(@X)=@X) + 1 , @X ,TRUNCATE(@X,0));
    +----------------------------------------------+
    | ELT( (CEIL(@X)=@X) + 1 , @X ,TRUNCATE(@X,0)) |
    +----------------------------------------------+
    | 20.7                                         |
    +----------------------------------------------+
    1 row in set (0.00 sec)
     
    mysql> SET @X = 20;
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> SELECT ELT( (CEIL(@X)=@X) + 1 , @X ,TRUNCATE(@X,0));
    +----------------------------------------------+
    | ELT( (CEIL(@X)=@X) + 1 , @X ,TRUNCATE(@X,0)) |
    +----------------------------------------------+
    | 20                                           |
    +----------------------------------------------+
    1 row in set (0.00 sec)
    Pensez au tag

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci de vos réponses, je vais les tester

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Adjanakis, je ne comprends pas comment je peux faire.
    ma valeur est le nombre d'années d'experience (c'est un impératif que ce soit un float)
    NbAnneesExp.

    J'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select IdEmploye, NbAnneesExp((ceil(NbAnneesExp)=NbAnneesExp)+1, NbAnneesExp, truncate(NbAnneesExp,0)) from DossierEmploye
    Mais ça ne marche pas.
    Je suppose qu'il y a un problème au niveau du ceil ?

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Regarde le code de Adjanakis : il utilise la fonction ELT, tu l'a omise.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    En effet, et je l'avais malencontrueusement remplacée par ma variable.

    Merci à tous les 2 trotters213 et Adjanakis

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Pense au tag Résolu

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

Discussions similaires

  1. [AC-2010] Affichage d'étiquette selon valeur dans état
    Par lumpys dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/10/2014, 13h27
  2. Affichage MSGBOX selon valeur d'une cellule
    Par Thimmy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/06/2008, 09h07
  3. Affichage MSGBOX selon valeur d'une cellule
    Par Thimmy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2008, 19h41
  4. separer valeur decimale de valeur entiere
    Par EE dans le forum Access
    Réponses: 13
    Dernier message: 09/09/2005, 08h24
  5. [8086] Affichage d'un entier de 32 bits
    Par elNINIo dans le forum Assembleur
    Réponses: 12
    Dernier message: 10/05/2003, 20h33

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