Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 04/10/2011, 17h11   #1
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Par défaut Générer l'affichage pour une année glissante

Bonsoir,

J'aimerais afficher le mois et l'année sur une année glissante (Date du jour -12 mois) et ramener les données des mois qui vont avec.

Ma requête ramène les bonnes données, mais comment ajouter l'affichage du mois en lettre (Janvier...) et de l'année sur une année glissante pour chaque mois ?

Merci pour votre aide

Code :
1
2
3
4
5
6
 
SELECT 
 MONTH(D_CLOTURE) AS mois
,COUNT(IDFICHON) AS nbFichon
FROM F_HISTO_FICHON
GROUP BY MONTH(D_CLOTURE)
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 14h43   #2
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
ma requête a évoluée :

Mais ma clause where ne fonctionne pas, ça ne renvoie rien, je voudrais afficher les données quand D_CLOTURE se trouve entre la date du jour -12 mois. (pour avoir une année glissante)
Code :
1
2
3
4
5
6
7
8
 
SELECT 
 MONTH(D_CLOTURE)AS mois 
,YEAR(D_CLOTURE)
, COUNT(idfichon) AS nb 
FROM F_HISTO_FICHON
WHERE MONTH(D_CLOTURE) BETWEEN DATEADD(mm, -12, GETDATE()) AND MONTH(getdate())
GROUP BY MONTH(D_CLOTURE),YEAR(D_CLOTURE)
Merci pour aide.
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 16h03   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Code :
WHERE MONTH(D_CLOTURE) BETWEEN DATEADD(mm, -12, GETDATE()) AND MONTH(getdate())
Avec un mois compris entre le mois d'aujourd'hui (le 10ième) et celui d'y a un an (le 10ieme) et quelque soit l'année...

Essaie ça plutôt :
Code :
WHERE D_CLOTURE BETWEEN DATEADD(mm, -12, GETDATE()) AND getdate()
__________________
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.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 18h21   #4
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Code :
WHERE MONTH(D_CLOTURE) BETWEEN DATEADD(mm, -12, GETDATE()) AND MONTH(getdate())
Avec un mois compris entre le mois d'aujourd'hui (le 10ième) et celui d'y a un an (le 10ieme) et quelque soit l'année...

Essaie ça plutôt :
Code :
WHERE D_CLOTURE BETWEEN DATEADD(mm, -12, GETDATE()) AND getdate()
Merci pour ta réponse

Effectivement ta clause where fonctionne,mais comment faire pour afficher les résultats inférieurs au 06-10-2010 ?
On peut dire à getdate qu'il commence au 1er du mois ?
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 18h40   #5
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
Un moyen pour récupérer la date de début de mois à partir de getdate() :

Code :
convert(datetime,convert(varchar(6),getdate(),112)+'01',112)
SLE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 20h03   #6
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Envoyé par SLE Voir le message
Un moyen pour récupérer la date de début de mois à partir de getdate() :

Code :
convert(datetime,convert(varchar(6),getdate(),112)+'01',112)
Merci ça fonctionne
arthuro45 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 04h14.


 
 
 
 
Partenaires

Hébergement Web