Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 07/02/2012, 13h11   #1
 
Inscription : septembre 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 114
Points : -49
Points : -49
Par défaut Affichage d'un nombre (0000)

je veux faire le reporting et je veux récupérer le nombre d'enregistrement dans une table mais avec 4 nombre (Exemple : 1) .Cette valeur change parfois elle devient 12 parfois 100 .

Je veux recupérer cette valeur mais avec 4 nombre par exemple : 0001 ou 0012 ou 0100 .

Comment faire ?

Merci d'avance
ghir_ana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h22   #2
Membre actif
 
Inscription : janvier 2012
Messages : 117
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 117
Points : 173
Points : 173
Si tu n'as que trois valeurs possibles (et que tu es d'accord pour une valeur de retour en chaîne de caractères), tu peux faire un petit case:

Code :
1
2
3
4
5
6
7
SELECT
   CASE taColonne
           WHEN 1 THEN '0001'
           WHEN 12 THEN '0012'
           WHEN 100 THEN '0100'
   END
FROM taTable
KookieMonster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h33   #3
 
Inscription : septembre 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 114
Points : -49
Points : -49
La variable n'est pas statique à chaque instant la valeur change


Citation:
Envoyé par KookieMonster Voir le message
Si tu n'as que trois valeurs possibles (et que tu es d'accord pour une valeur de retour en chaîne de caractères), tu peux faire un petit case:

Code :
1
2
3
4
5
6
7
SELECT
   CASE taColonne
           WHEN 1 THEN '0001'
           WHEN 12 THEN '0012'
           WHEN 100 THEN '0100'
   END
FROM taTable
ghir_ana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h45   #4
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Bonjour,

Si tu veux des zero devant ce sera donc une chaine de caracteres.
Il faut que tu concatenes "0000" avec ton resultat converti en caracteres sans espaces puis que tu prennes les quatres derniers caracteres de tout ca.
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h49   #5
 
Inscription : septembre 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 114
Points : -49
Points : -49
Pas de concaténation il faut qu'elle s'affiche automatiquement .

Comme excel si tu mets 2 par défaut elle s'ecrit 0002



Citation:
Envoyé par Jean.Cri1 Voir le message
Bonjour,

Si tu veux des zero devant ce sera donc une chaine de caracteres.
Il faut que tu concatenes "0000" avec ton resultat converti en caracteres sans espaces puis que tu prennes les quatres derniers caracteres de tout ca.
ghir_ana est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 07/02/2012, 14h55   #6
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Ou se situe le probleme exactement ?
Au niveau de la requete de selection ou apres pour afficher le resultats dans ton interface ?
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 15h40   #7
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 688
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 688
Points : 10 439
Points : 10 439
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ghir_ana souhaite formater son nombre en chaîne de caractères avec quatre chiffres significatifs.

Essayez ainsi :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT nb, RIGHT('0000' + CAST(nb AS varchar), 4) AS res
  FROM (SELECT 0 AS nb union ALL
		SELECT 1       union ALL
		SELECT 2       union ALL
		SELECT 12      union ALL
		SELECT 999) AS SR
 
nb          res
----------- ----
0           0000
1           0001
2           0002
12          0012
999         0999
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 16h38   #8
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 674
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 674
Points : 8 741
Points : 8 741
Bonjour,

Essayez :

Code :
1
2
SELECT REPLICATE('0', 4 - LEN(zeColonne))
FROM dbo.maTable
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 18h25   #9
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 688
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 688
Points : 10 439
Points : 10 439
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Il manque le nombre Elsuket !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT nb
     , RIGHT('0000' + CAST(nb AS varchar), 4)            AS res1
     , REPLICATE('0', 4 - LEN(nb)) + CAST(nb AS varchar) AS res2
  FROM (SELECT 0 AS nb union ALL
		SELECT 1       union ALL
		SELECT 2       union ALL
		SELECT 12      union ALL
		SELECT 9999) AS SR
 
nb          res1 res2
----------- ---- ----
0           0000 0000
1           0001 0001
2           0002 0002
12          0012 0012
9999        9999 9999
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 07h32   #10
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 674
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 674
Points : 8 741
Points : 8 741
Citation:
Envoyé par Michel Denisot
Désolé
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket 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 18h43.


 
 
 
 
Partenaires

Hébergement Web