|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Bonjour
Au sein de requêtes diverses en triant par MOIS (peu importe le reste de la requête): J'ai dans ma base les dates stockées sous le format: (xxxxxx étant les millièmes, centièmes de secondes, etc...) 'YYYYMMDDxxxxxx' => Ex: '20110101000000' Une fonction Appelée dbo.F_VARCHAR_TO_DATETIME permet de convertir au format date Si je veux afficher en Majuscule le MOIS je fais: Code sql :
SELECT DISTINCT UPPER(DATENAME(MONTH,dbo.F_VARCHAR_TO_DATETIME(MATABLE.MADATE))) FROM MATABLE Mais si je veux trier par mois et fais: Code sql :
J'imagine qu'il faut faire le tri de la façon suivante: Code sql :
Mais j'obtiens le message: Les éléments ORDER BY doivent se retrouver dans la liste de sélection si SELECT DISTINCT est spécifié. Si je rajoute au SELECT : Code sql :
JANVIER NULL JANVIER JANVIER 01 FÉVRIER 02 JANVIER 02 MARS 03 AVRIL 04 MAI 05 JUIN 06 JANVIER 06 JUILLET 07 JANVIER 08 AOÛT 08 SEPTEMBRE 09 JANVIER 09 OCTOBRE 10 NOVEMBRE 11 JANVIER 11 JANVIER 12 DÉCEMBRE 12 JANVIER 50 Que faudrait-il faire? merci |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Le moins qu'on puisse dire, c'est que vous aimez vous compliquer la vie. Le mieux eut été de stocker les dates au type DATETIME ... ça aide ! Sans cela ça vous donne des requêtes spaghetti ou alambiquées, comme vous voudrez. Faites la transformation au moment de l'insertion ! Ensuite avec une petite table où vous stockez la liste des mois de l'année et leur indice, une jointure des plus simples fait le reste, et en performances s'il vous plaît Vous noterez que vous pouvez créer une colonne calculée qui extrait automatiquement l'indice du mois de la date insérée, puis l'indexer. @++
__________________
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 |
|
10
|
|
|
#3 | ||
![]() ![]() |
Comme ceci :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#4 | |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Merci
Pour Elkuset: malheureusement je ne souhaite PAS me compliquer la vie; mais des amateurs ont construit l'usine à gaz qui nous sert de SI, et c'est ainsi pour les formats de date...Comme pour le reste...Moi, j'essaye juste de faire mes requêtes ![]() Quant au modèle de données...Enfin, ce qu'on en déduit parce que rien n'est écrit... Citation:
Cordialement et merci |
|
|
|
00
|
|
|
#5 | |||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
si toutefois vous ne pouvez/voulez pas créer cette table, vous pouvez utiliser une CTE, ou directement une pseudo table : Code SQL :
Vous pouvez aussi écrire directement votre ORDER BY come ceci : Code SQL :
mais c'est sur que ce ne sont pas les solutions les plus propres... |
|||||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
@Dr_No : toutes mes excuses, vous êtes la victime, et je sais ce que c'est ...
Amusez-vous à leur envoyer un lien vers mon post @++
__________________
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 |
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Citation:
Je viens aussi de récupérer ce genre de pot de pue ces derniers jours...
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
ELsuket: A vrai dire , j'ai déjà envoyé des messages sur vos réponses à plusieurs de mes posts....
![]() J'y avais joint un conseil bibliographique sur les 'Stratégies Absurdes' ![]() Merci encore à tous de votre aide A la prochaine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com