IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Recherche dynamique par date


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Recherche dynamique par date
    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 :
    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 ...
    La où je bloque, c'est la recherche le date de mise à jour max par dossier et par mois.
    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)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Je pense qu'il te faut une table calendrier.
    Exemple de structure
    Date_calendrier
    mois
    annee
    jour_de_la_semaine
    lendemain
    Et une fois remplie une telle table sur les dix ans à venir tes requêtes seront beaucoup plus simples, mais attention ta TagStartDate est-ce une date ou est-ce qu'il y a l'heure aussi.
    S'il y a l'heure il te faudra jongler avec Date_calendrier et lendemain, sinon tu n'auras besoins que d'une des deux.
    Prenons l'hypothèse que tu n'as pas l'heure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT annee, mois,numero_dossier,	MAX(TagVersion) -- code complémentaire ...
    from ma_table inner join table_calendrier
    on TagStartDate=date_calendrier
    group by annee, mois,numero_dossier
    Avec l'heure on aurait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT annee, mois,numero_dossier,	MAX(TagVersion) -- code complémentaire ...
    from ma_table inner join table_calendrier
    on TagStartDate>=date_calendrier
    and TagStartDate<lendemain
    group by annee, mois,numero_dossier
    Tu trouveras à l'aide de ton moteur de recherche préféré, de quoi créer et remplir une table calendrier.
    Cordialement
    Soazig

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi à faire ce que je souhaitais en utilisant des boucles, autrement je n'aurais pas pu le faire. La requête contenait déjà le code que vous proposiez, mais comme d'autres paramètres entraient en jeu, il était difficile d'en dire plus (d'autant plus que c'est pour une entreprise où je ne suis que stagiaire).

Discussions similaires

  1. [MySQL] Recherche avancée par date
    Par Evengeline dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 05/07/2011, 13h53
  2. recherche personnalisée par date ?
    Par mohe27 dans le forum SQL
    Réponses: 7
    Dernier message: 06/03/2011, 14h05
  3. rechercher email par date php imap
    Par diabli73 dans le forum Langage
    Réponses: 16
    Dernier message: 09/02/2009, 18h47
  4. recherche par date vba excel
    Par fred014 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/03/2007, 13h35
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo