Bonjour aux curieux,
Je suis actuellement en stage et j'ai des rapports à rendre (Report Server Project) basés sur des requêtes SQL, dont une qui me pose beaucoup de problème. Voici le contexte :
J'ai une table qui regroupe des Datastores avec (notamment) ses différentes versions au cours du temps, l'espace disque utilisé pour chacune de ces versions, et la date d'ouverture et de cloture de ces versions.
<italique>Image d'exemple : mon pc possède un dossier qui pèse 352 Mo le 15/03/12, je le met à jour; il fait 368 Mo le 29/03/12 .... Je le remet à jour le 05/04/12 et il fait 851 Mo. Ce dossier appartient à mon C: </italique>
Ma table regroupe ce genre d'information pour environ 200 "dossiers" sur n-disques.
Le travail à faire est d'indiquer la taille que représente l'ensemble de ces dossiers par mois et par disque. (En me basant sur la date de mise à jour de chaque dossier la plus tardive du mois).
Pour l'instant, en mettant ceci, j'obtient exactement ce que je souhaite :
La où je bloque, c'est la recherche le date de mise à jour max par dossier et par mois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT MAX(TagVersion) -- code complémentaire ... -- ...... WHERE MONTH(TagStartDate) = 2 -- code complémentaire ...
J'arrive à la faire en précisant le mois, mais pas pour tous les mois, et qui plus est, en sachant les mois disponible dans la table (depuis février 2012 jusqu'au mois actuel qui évolue chaque jour)
Faut-il utiliser des boucles ? D'autre méthodes que j'ignorent ?
Toute réflexion construite sera la bienvenue
(Je ne fais du SQL que depuis 1 mois)
Partager