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 :

Consolidation de données sur inteval de temps


Sujet :

Développement SQL Server

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut Consolidation de données sur inteval de temps
    Bonjour
    Je cherche a consolider des valeurs, champ COL_VALEUR en les sommant sur un interval de temps (par exemple 5 minutes).

    Voila le code pour la création de la table source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    GO
    IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
        DROP TABLE dbo.T1;
    GO
    CREATE TABLE dbo.T1 
    (
    COL_TIMESTAMP int IDENTITY,
    COL_FORMATEDDATE datetime,
    COL_VALEUR bigint NULL );
     
    GO
    DECLARE @datetime datetime;
    SET @datetime = '2010-1-1 00:00:000';
     
    DECLARE @Counter int ;
    SET @Counter= 1 ;
     
    WHILE @Counter <= 50 
    BEGIN
     INSERT INTO dbo.T1 (COL_FORMATEDDATE,COL_VALEUR) VALUES (DATEADD ( mi, @Counter , @datetime ),'1');
    SET @Counter = @Counter + 1;
     
    END;
    GO
    SELECT COL_TIMESTAMP,COL_FORMATEDDATE,COL_VALEUR
    FROM dbo.T1;
    GO
    Dans cet table les dates heures sont alignes sur la minute mais ils peuvent être n'importe quand et à intervals irréguliers

    Un fois traité la commande sql doit retourner:

    Un timestamp a valeur juste et la somme des valeurs consolidés sur les 5 minutes par exemple.

    2010-01-01 00:00:00 5
    2010-01-01 00:05:00 5
    2010-01-01 00:10:00 5
    2010-01-01 00:15:00 5
    ...

    Je suis sec car vraiment peu habitué à manipuler TRANSACT SQL et la fonction SELECT. J'ai cheché des solutions avec DATEDIFF, DATE PARt et DATEADD mais sans succes.
    Vos idées sont les bienvenues

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai cette fonction pour "arrondir" une heure avec une précision (en minute) paramétrable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ALTER FUNCTION [dbo].[Arrondi_Heure]
    (
    	@Heure Datetime = 0, @Precision_Min Int = 15
    )
    RETURNS DATETIME
    AS
    BEGIN
    	DECLARE @Heure_Number Float ,
    			@Heure_Number_Arrondi Float,
    			@Jour_Float_Arrondi Float,
    			@Heure_Retour_Float Float
     
    		set @Jour_Float_Arrondi = floor(cast(@Heure as float))
    		set @Heure_Number = DATEDIFF(minute, cast(@Jour_Float_Arrondi as datetime), @Heure )
    		set @Heure_Number_Arrondi = FLOOR ( @Heure_Number / @Precision_Min ) * @Precision_Min
    		set @Heure_Retour_Float = @Jour_Float_Arrondi + @Heure_Number_Arrondi / 1440.0
     
    	return cast(@Heure_Retour_Float as datetime)
     
    END
    J'avoue ne pas avoir passer de temps à l'optimiser ou à faire plus beau, mais dans mes besoins très ponctuels (faire des rapports d'activités sur une tables pour voir les heures les plus actives, ce genre de chose), ça fait la job.

Discussions similaires

  1. récupérer des données sur plusieurs feuilles en même temps
    Par huître dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2011, 14h10
  2. [XL-2003] extraire des données sur période de temps donnée
    Par nazaire dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/01/2011, 20h24
  3. Réponses: 2
    Dernier message: 06/03/2008, 10h42
  4. Réponses: 4
    Dernier message: 06/11/2007, 23h31
  5. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32

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