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

SQL Firebird Discussion :

Groupement par date


Sujet :

SQL Firebird

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut Groupement par date
    Bonjour,

    Voici une table

    dt_hr valeur
    01/01/2010 10
    01/01/2010 10h00 20
    01/01/2010 11h00 30
    ...
    01/01/2010 18h00 40
    ...
    02/01/2010 12h00 10
    ...
    03/01/2010 17h00 20

    Dans le champ dt_hr j'ai tout un tas de données horodatées et j'ai les valeurs qui correspondent
    Je voudrais faire une requete qui me donnerait la somme des valeurs sur une plage de date/heure (par exemple du 01/01/10 au 04/01/10 puis du 05/01/10 au 08/01/10 etc...
    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sum(value) from matable where dt_hr between 01/01/2010 and 31/01/2010 group by 'TOUS LES 3 JOURS'
    J'espere que j'ai été clair

    Merci

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    A première vu je ferai ca avec une PS.

    Sinon en SQL pur je verrais bien avec l'aide d'un UDF.

    Genre faire un regroupement par (( extraire le nombre de jour entre le debut de la période et dt_hr) Mod 3) (pour grouper par 3 jours)

  3. #3
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Si vous êtes sous fb>=2.1 il existe DATEDIFF qui pourrait faire l'affaire

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    D'ailleurs je me suis trompé, ce n'est pas avec MOD qu'il faut faire puisque ca retourne le reste de la division et non la partie entière du résultat.

    Donc la requete devrait être comme ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select (datediff(day, :DateDebut, cast(t.dt_hr as date)) / 3), Min(cast(t.dt_hr as date)) DateDebutGroupe, max(cast(t.dt_hr as date)) as  DateFinGroupe, sum(t.valeur) Total
    from Matable t
    where t.dt_hr between :DateDebut and :DateFin
    group by 1

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut
    Merci Barbibulle je vais regarder ca

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut
    Ca marche super bien

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

Discussions similaires

  1. Groupement par date avec jointure
    Par morality59 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/07/2013, 11h53
  2. Groupement par Date
    Par ecoinfo dans le forum Développement
    Réponses: 7
    Dernier message: 14/01/2011, 15h48
  3. Groupement par DATE echantillonnage
    Par aymeric_garnier dans le forum Langage SQL
    Réponses: 8
    Dernier message: 21/04/2008, 13h01
  4. pb groupement par date
    Par maysa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/05/2007, 09h43
  5. Groupement par dates
    Par Nico_57 dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/06/2006, 14h43

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