Bonjour,
Je poste ici après pas mal de recherche car j'ai un problème de requête SQLServer 2005.
J'effectue une requête sur la table, bornée par un timestamp. C'est de la forme :
Je voudrais aussi, en plus d'obtenir toutes les valeurs (il y en a une par minute) connaître le temps, en minutes, qui s'est écoulé sur l'ensemble de la période sélectionnée. Je pourrais compter les enregistrements mais quand je disais "une par minute", ce n'est pas totalement vrai donc je ne peux pas prendre ça comme repère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT champ1, champ2 FROM matable WHERE timestamp > 'montimestamp1' AND timestamp < 'montimestamp2'
Du coup, j'ai créé cette requête :
Elle me renvoie bien le nombre de minutes entre les deux intervalles donc tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT TOP 1 DATEDIFF( mi, (SELECT TOP 1 Time_Stamp FROM DATA_Server1_#1 WHERE Time_Stamp > '10/01/2012 00:00:00' AND Time_Stamp < '10/02/2012 00:00:00'), (SELECT TOP 1 Time_Stamp FROM DATA_Server1_#1 WHERE Time_Stamp > '10/01/2012 00:00:00' AND Time_Stamp < '10/02/2012 00:00:00' ORDER BY Time_Stamp DESC) ) FROM DATA_Server1_#1
SAUF ! Qu'en plus de ça il y a des coupures. C'est à dire que je dois enlever les périodes de temps ou l'un des champs est hors limites (par exemple, monChamp < 800). Et ça, je n'arrive pas à le faire à partir de ma requête actuelle. Je suis peut-être parti dans la mauvaise direction avec mon DATEDIFF...
Quelqu'un aurait-il la solution ?
Merci d'avance !
Partager