[MySQL] Requete pour récupérer les lignes de fin de mois

Requete pour récupérer les lignes de fin de mois [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 27-01-2009 à 10:12:47    

Bonjour à tous,
 
J'ai une problématique SQL, mais je ne sais pas si elle est simple ou pas !
Je m'explique : j'ai une base de données avec un certain nombre de lignes journalières (aaaa-mm-jj)...
Je voulais savoir s'il était possible de récupérer l'ensemble des dernières lignes de chaque mois : mais le soucis, c'est que bien sur, la dernière ligne n'est pas toujours le 31. Il peut s'agir du 29, 30 etc... (ce sont des valeurs boursières, donc le dernier jour d'ouverture des marchés de chaque mois)
 
Est-ce possible, ou pas du tout ?
 
Merci de votre aide,
 
m.

Reply

Marsh Posté le 27-01-2009 à 10:12:47   

Reply

Marsh Posté le 27-01-2009 à 11:21:16    

up my friends !

Reply

Marsh Posté le 27-01-2009 à 12:12:25    

[:sh@rdar]
LAST_DAY

Reply

Marsh Posté le 27-01-2009 à 13:27:13    

Ca ne retourne que le dernier jour du mois en général, non ?
 
En d'autres termes, je veux qu'il me retourne le dernier jour du mois présent dans ma base... Même si c'est le 26...
 
Peut-être que je suis pas clair, en fait... :)

Reply

Marsh Posté le 27-01-2009 à 13:33:21    

tu prends la 1er jour du mois, et tu lui soustrais 1 jour

Reply

Marsh Posté le 27-01-2009 à 14:21:41    

Alors dans ce cas, il faut que tu joues avec max et interval. [:airforceone]

Reply

Marsh Posté le 28-01-2009 à 09:59:41    

Salut,
 
Tu dois pouvoir faire ça avec MAX et GROUP BY :  
 SELECT YEAR( creation_date ) , MONTH( creation_date ) , MAX( DAY(creation_date) )
FROM TA_TABLE
GROUP BY YEAR( creation_date ) , MONTH( creation_date )
 
Ca ressort le dernier jour de chaque mois de chaque année pour lesquels une creation_date est présente.
 
Après, en insérant un WHERE, tu peux bien sur filtrer sur le mois en cours : WHERE MONTH(GetDate()) = MONTH(Creation_Date) AND YEAR(GetDate()) = YEAR(Creation_Date)
 
ou juste sur l'année en cours : WHERE YEAR(GetDate()) = YEAR(creation_date)
 
et avec le ORDER BY, tu peux trier :  
 
ORDER BY YEAR(creation_date) DESC, MONTH(creation_date) DESC, DAY(creation_date) DESC.
 
Bon courage,


Message édité par Tibar le 28-01-2009 à 10:00:09
Reply

Marsh Posté le 28-01-2009 à 11:44:38    

Merci pour ta réponse...
 
ton création_date, c'est mon champs date, c'est ca ??
 
Le mien est de la forme  : "aaaa-mm-jj"

Reply

Marsh Posté le 28-01-2009 à 14:10:59    

Salut,
 
Oui, le champ Creation_Date est mon champ Date.
Quelque soit l'affichage de la valeur, si ton champ est au format Date, ça doit passer.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed