Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2005, 16h41   #1
Invité régulier
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 6
Points : 6
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
Ankya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 17h57   #2
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

De manière bien lourde en transformant en string puis en utilisant la fonction TRUNCATE
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 00h15   #3
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
Bonjour,

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

Code :
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)
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h11   #4
Invité régulier
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 6
Points : 6
Merci de vos réponses, je vais les tester
Ankya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h30   #5
Invité régulier
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 6
Points : 6
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 :
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 ?
Ankya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h32   #6
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Regarde le code de Adjanakis : il utilise la fonction ELT, tu l'a omise.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h34   #7
Invité régulier
 
Inscription : mai 2004
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 13
Points : 6
Points : 6
En effet, et je l'avais malencontrueusement remplacée par ma variable.

Merci à tous les 2 trotters213 et Adjanakis
Ankya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2005, 10h36   #8
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Pense au tag Résolu
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h32.


 
 
 
 
Partenaires

Hébergement Web