Salut,
je recherche de l'aide sur postgresql 7.2 ( et en même temps sur SQL en général ).
J'enregistre dans une table de ma BD, l'état ( marche ou arrêt )de moteurs électriques ou thermiques, pour des besoins industriels.
Notre client nous demande de lui ressortir, sur une période donnée, les informations suivantes :
1> Pourcentage d'état de marche de chaque moteur
2> Export des résultats dans un fichier de type tableur
J'aimerais savoir s'il est possible de réaliser l'opération "1" en SQL, c'est à dire le calcul du pourcentage, et si possible le genre de requêtes à exécuter.
Deuxièmement, où je pourrais trouver la commande d'export de données à partir d'une requête.
Merci d'avance
# un peu flou pour moi...
Posté par . Takhi . Évalué à 3.
comment enregistres tu l'arret/marche de tes moteurs?
=> une ligne pour l'arret, une ligne pour la relance?
=> des echantillons?
( c'est à dire toutes les n secondes,minutes.. tu enregistres l'etat de tes moteurs? )
pour la question n°2 tu dois pouvoir utiliser la commande pgsql
pour pouvoir generer des données tabulées pour réimporter le tout dans un tableur
# Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Solution
Posté par moneyboss . Évalué à 1.
Heure Moteur etat
14:31:56 Moteur1 Marche
14:33:24 Moteur2 Marche
14:46:18 Moteur1 Arrêt
Ces Infos sont enregistrées de façon évènementielle
[^] # Re: Solution
Posté par jerome (site web personnel) . Évalué à 2.
Ce qu'il faut que tu connaisses :
. la période globale à étudier
. les enregistrements dans ta table pour cette même période (d'après ce que tu écris, cette information est absente), car tu ne stockes que l'heure.
. la somme de toutes les périodes de "marche" soit la différence entre un état 'arrêt' et un état 'marche' (à priori, tu n'as pas identifier les enregistrements avec un serial, donc faudra faire avec les OID)
. faire le rapport entre les 2, aucun problème.
SQL sait faire plein de choses, PostgreSQL encore plus, avec les procédures stockées, etc. Tu peux tout à fait faire ce que tu recherches, mais ça va être pénible, et certainement pas faisable directement en SQL avec une requête dégueulasse :)
Le design de ta base me parait attaquable. Plutôt que de stocker l'état de la machine à une heure donnée, il aurait été préférable de stocker le timestamp (en nombre de secondes depuis l'epoch par exemple) pour 2 champs : mise_en_marche et arrêt.
id
id_moteur
ts_mise_en_marche
ts_arret
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.