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
Dans cet table les dates heures sont alignes sur la minute mais ils peuvent être n'importe quand et à intervals irréguliers
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
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
Partager