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

Requêtes et SQL. Discussion :

Requête complexe de contrôle d'heure


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Requête complexe de contrôle d'heure
    Bonjour.

    Disposant d'une table du type

    colonnes
    a: date (12 juillet 2008, 13 juillet 2008 ...)
    b: heure (9h, 9h30, 10h05, 11h11, 12h ...)
    c: poste (poste1, poste2 ... poste5)
    d: données 1
    e: données 2
    f: données 3
    g: données 4
    h: données 5
    (données 1 à 5 numériques entières)

    je voudrais trouver des requêtes qui permettent :

    - indiquer par mois et par tranche horaire (juillet : 9-12h 12h-14h 14-17h 17-20h; pareil pour août ...)
    - indiquer par mois et jour (lundi, mardi ... samedi)

    le cumul (d+f+h) , le cumul (e+g)
    la moyenne (d+f+h) , moyenne (e+g)

    et si possible (mais c'est moins important dans l'immédiat)
    la moyenne (d+f+h) sans tenir compte des données nulles pour d et f, tout en tenant compte des valeurs nulles pour h.

    Enfin, une requête qui indique le min (sauf 0) et le max sur le mois par heures pour (e+g)

    Tout ça pour exploiter en texte, xml, ou si possible sur excel, de façon à tracer des graphiques.

    Tout ceci, je l'indique pour les éventuels étudiants impliqués, est destiné à étudier la fréquentation d'une bibliothèque universitaire, sélectionnée pour ouvrir d'avantage, et déterminer à quelles périodes (jour/heures en fonction des mois) mettre plus de moyens.
    Donc, un moyen de jauger du véritable besoin, pour ne pas faire tout et n'importe quoi en dépit des besoins réels

    Merci de l'aide que vous pourrez apporter.
    Vous pourrez être cités, le cas échéant, sauf si vous demandez explicitement ne pas l'être, pour cette étude.

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    moi, je ferai une petite fonction dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function GetTimeInterval(t As Date) As String
        Select Case t
            Case #9:00:00 AM# To #12:00:00 PM#
                GetTimeInterval = "09h00-12h00"
            Case #12:00:00 AM# To #2:00:00 PM#
                GetTimeInterval = "12h00-14h00"
            Case #2:00:00 PM# To #5:00:00 PM#
                GetTimeInterval = "14h00-17h00"
            Case #5:00:00 PM# To #8:00:00 PM#
                GetTimeInterval = "17h00-20h00"
            Case Else
                GetTimeInterval = "Hors jeu"
        End Select
    End Function
    Ensuite, une requête qui prendrait le mois de ta colonne a, la fonction ci-dessus de la colonne b, et les cumuls demandés

    Ca devrait faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT
        Format(a,"mmmm") as Mois,
        GetTimeInterval(b) as Periode,
        Sum(d+f+h) As PremierCumul,
        Sum(e+g) As SecondCumul,
        Avg(d+f+h) As PremiereMoyenne,
        Avg(e+g) as Second Cumul
    FROM
        TaTable
    Group By
        Format(a,"mmmm"),
        GetTimeInterval(b)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Génial. Pas encore testé, mais ça devrait marcher.
    Merci Maxence

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 15h12
  2. Requête complexe
    Par Yali dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2005, 10h19
  3. 3 tables avec requête complexe
    Par yamino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/03/2004, 20h50
  4. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 20h05
  5. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 18h50

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