Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2011, 11h48   #1
Nouveau Membre du Club
 
François
Inscription : mars 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : François
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2008
Messages : 59
Points : 25
Points : 25
Par défaut Repérer les évolutions d'un champ int

Bonjour à tous,

J'ai une table simplifiée pour l'occaz de la forme suivante:
Code :
1
2
3
4
5
6
7
8
9
10
 
ma_date..............equipement..........interface.............compteur
2011-01-01..........eqt1...................int1....................50
2011-01-02..........eqt1...................int1....................50
2011-01-01..........eqt2...................int1....................60
2011-01-02..........eqt2...................int1....................66
2011-01-01..........eqt3...................int1....................1
2011-01-02..........eqt3...................int1....................5
2011-01-01..........eqt3...................int2....................9
2011-01-02..........eqt3...................int2....................9

Il s'agit pour les curieux d'une table affichant les compteurs CRC sur les différents interfaces de routeurs...

J'aimerais mettre en forme ces résultats de manière à faire apparaître l'évolution (un delta par exemple) des compteurs pour les interfaces concernés (ceux dont le compteur a augmenté donc...)

Est-ce réalisable directement grâce à une requête ou faut-il passer par un script selon vous?

Merci pour vos conseils!
franquis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 11h54   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Bonjour,

Les compteurs augmentés mais par rapport à quoi ? Si vous n'arrivez pas à l'expliquer, montrer un exemple de jeu de résultat attendu.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 12h06   #3
Nouveau Membre du Club
 
François
Inscription : mars 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : François
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2008
Messages : 59
Points : 25
Points : 25
J'aimerais obtenir quelque chose comme ça:

Code :
1
2
3
4
 
date_a................date_b..........equipement..........interface.............delta
2010-01-01.........2010-01-02....eqt2...................int1....................6
2010-01-01.........2010-01-02....eqt3...................int1....................4
franquis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 14h37   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 986
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 986
Points : 18 234
Points : 18 234
Envoyer un message via MSN à CinePhil
Pour chaque {equipement, interface, ma_date, compteur}, quelle est la date suivante ?
Code :
1
2
3
4
5
6
7
SELECT t1.equipement, t1.interface, t1.ma_date, t1.compteur, MIN(t2.ma_date) AS date_suivante
FROM la_table t1
INNER JOIN la_table t2 
    ON t2.equipement = t1.equipement
    AND t2.interface = t1.interface
WHERE t2.ma_date > t1.ma_date
GROUP BY t1.equipement, t1.interface, t1.ma_date, t1.compteur
On récupère le compteur correspondant et on calcule :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT tmp.equipement, tmp.interface, 
    tmp.ma_date AS date_a, 
    tmp.date_suivante AS date_b,
    t3.compteur - tmp.compteur AS delta
FROM la_table t3
INNER JOIN 
(
    SELECT t1.equipement, t1.interface, t1.ma_date, t1.compteur, MIN(t2.ma_date) AS date_suivante
    FROM la_table t1
    INNER JOIN la_table t2 
        ON t2.equipement = t1.equipement
        AND t2.interface = t1.interface
    WHERE t2.ma_date > t1.ma_date
    GROUP BY t1.equipement, t1.interface, t1.ma_date, t1.compteur
) tmp 
    ON tmp.equipement = t3.equipement
    AND tmp.interface = t3.interface
WHERE t3.ma_date = tmp.date_suivante
À essayer.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 10h12   #5
Nouveau Membre du Club
 
François
Inscription : mars 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : François
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2008
Messages : 59
Points : 25
Points : 25
C'est parfait! Ton idée fonctionne!

Merci!
franquis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h39.


 
 
 
 
Partenaires

Hébergement Web