IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Détection des changements de valeur


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Détection des changements de valeur
    Bonsoir aux experts et merci du coup de main.
    J'arrive a me débrouiller généralement avec les requetes bien que profane,mais la je tombe sur un os.
    Je voudrais détecter des changements de valeurs dans une table avec le dernier ancien enregistrement et le premier nouveau et ainsi de suite;
    Exemple de table

    Tag
    Ip_time Ip_value
    heure0 MAN
    heure1 MAN
    heure2 AUT
    heure3 AUT
    heure4 AUT
    heure5 MAN
    heure6 MAN
    heure7 MAN
    heure8 RSP
    heure9 RSP
    heure10 RSP
    ........ ...

    Exemple de résultats
    heure1 MAN
    heure2 AUT
    heure4 AUT
    heure5 MAN
    heure7 MAN
    heure8 RSP

    je parviens a contourner le probleme avec mes bidouilles mais je perds du temps ,de la lisibilité et je gagne du poids!

    Ce serait sympa de me trouver la bonne requete

    Merci d'avance

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT a.Ip_Time, a.Ip_value
    FROM dvp_blister a INNER JOIN dvp_blister b
                               ON b.Ip_time = (SELECT MIN(c.Ip_Time)
                                               FROM dvp_blister c
                                               WHERE c.ip_time > a.Ip_time)
                               OR b.Ip_time = (SELECT MAX(c.Ip_Time)
                                               FROM dvp_blister c
                                               WHERE c.ip_time < a.Ip_time)
    WHERE a.Ip_value != b.Ip_value
    GROUP BY a.Ip_Time, a.Ip_value;
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    IP_TIME  IP_VALUE
    heure01  MAN
    heure02  AUT
    heure04  AUT
    heure05  MAN
    heure07  MAN
    heure08  RSP

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse Médiat
    Ca passe bien en SQL+, j'ai cependant un probleme:
    la table est tres grande et la requete assoit le serveur....
    J'ai bien essayé de la borner dans le temps sur le dernier WHERE mais apparemment ca ne suffit pas.
    Il est indispensable pour moi de me limiter a un mois sachant qu'il y a un enregistrement toutes les dix secondes.
    Elle est assez "spec" quand même cette requête.....et dépasse mes compétences.
    Si on peut continuer à m'aider

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    As-tu un index sur Ip_time ?

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Et tu peux pas mettre un trigger sur ta table pour enregistrer les changements de valeurs dans une autre table (ou ajouter un flag sur les enregistrements qui t'intéressent) ?

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Je vais explorer vos pistes dès ce soir.
    je précise également que je retourne les valeurs dans un tableau Excel via une macro VBA ce qui ne va pas sans quelques problêmes d'adaptation de syntaxe.
    Je m'accroche car je ne doute pas du succès malgré les réticences de mon copain d'administrateur.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Tu pourrais alors te concenter (en vba) de lire les enregistrements de façon chronologique et de n'écrire que ceux qui correspondent à tes ruptures.

Discussions similaires

  1. [9.2] Détection de changement de valeurs sur un champ
    Par gorgonite dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 01/03/2013, 11h48
  2. détection des changements
    Par eviasra dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 04/12/2011, 14h23
  3. Réponses: 9
    Dernier message: 12/01/2010, 23h09
  4. [SQL] Détection du changement de valeur d'une variable
    Par micatmidog dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2007, 20h22
  5. Réponses: 2
    Dernier message: 23/01/2006, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo