2009-10-22 2 views
0

J'ai une pompe à eau que l'état de fonctionnement est stocké dans une base de données mssql toutes les 10 secondes avec l'heure du jour. La pompe fonctionne souvent toute la journée. Comment puis-je interroger le temps total pendant lequel la pompe était allumée pendant la journée?Requête SQL pour la pompe à eau temps total entre les dates

+0

Besoin d'un peu plus d'informations, comme la structure de la table et la fréquence à laquelle vous cherchez à interroger les informations. –

Répondre

3
SELECT COUNT(*) FROM pump WHERE state = on 

Prendre le résultat, et multiplier par 10 pour obtenir le temps en secondes?

Comme mentionné dans les commentaires, si vous sélectionnez également la date et la date GROUP BY, vous pouvez obtenir les chiffres par jour.

+0

+1 Tout à fait, brillamment simple. Je pense ... – gbn

+0

Eh bien, cela lui donnerait le nombre total, pas par jour. vous auriez besoin de faire du regroupement –

1

groupe par jour, compter le nombre d'enregistrements, et multiplier par 10:

select 
    year = datepart(y,datefield) 
, dayofyear = datepart(dy,datefield) 
, minuteson = count(*)*10 
from pump 
where state = 'on' 
group by datepart(y,datefield), datepart(dy,datefield) 
Questions connexes