Forum général.général aide sur postgresql 7.2

Posté par  .
Étiquettes : aucune
0
11
mar.
2005
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  . Évalué à 3.

    j'aimerais que tu précises ce que tu enregistres dans ta base:

    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  . Évalué à 2.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Commentaire supprimé

      Posté par  . Évalué à 2.

      Ce commentaire a été supprimé par l’équipe de modération.

      • [^] # Re: Solution

        Posté par  . Évalué à 1.

        En fait j'enregistre dans ma table les infos suivantes :

        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  (site web personnel) . Évalué à 2.

          A priori, ce n'est pas la meilleure façon de stocker l'information pour arriver à produire les résultats escomptés : il n'y a pas de lien évident de correspondance entre une heure de début et une heure de fin de fonctionnement dans ton système.
          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.