1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
--
-- Structure de la table `minisnmp`
--
CREATE TABLE IF NOT EXISTS `minisnmp` (
`Horaire` datetime default NULL,
`NomMachine` varchar(20) default NULL,
`TypeReleve` varchar(10) default NULL,
`Nomcapteur` varchar(10) default NULL,
`ValeurCapteur` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `minisnmp`
--
INSERT INTO `minisnmp` (`Horaire`, `NomMachine`, `TypeReleve`, `Nomcapteur`, `ValeurCapteur`) VALUES
('2008-08-25 10:00:00', 'morpheus', 'fan', 'fan1', 2200),
('2008-08-25 10:00:00', 'morpheus', 'fan', 'fan2', 2300),
('2008-08-25 10:00:00', 'morpheus', 'temp', 'cpu', 52),
('2008-08-25 10:00:00', 'morpheus', 'temp', 'mb', 40),
('2008-08-25 11:00:00', 'morpheus', 'fan', 'fan1', 2200),
('2008-08-25 11:00:00', 'morpheus', 'fan', 'fan2', 2300),
('2008-08-25 11:00:00', 'morpheus', 'temp', 'mb', 40);
mysql> select * from minisnmp;
+---------------------+------------+------------+------------+---------------+
| Horaire | NomMachine | TypeReleve | Nomcapteur | ValeurCapteur |
+---------------------+------------+------------+------------+---------------+
| 2008-08-25 10:00:00 | morpheus | fan | fan1 | 2200 |
| 2008-08-25 10:00:00 | morpheus | fan | fan2 | 2300 |
| 2008-08-25 10:00:00 | morpheus | temp | cpu | 52 |
| 2008-08-25 10:00:00 | morpheus | temp | mb | 40 |
| 2008-08-25 11:00:00 | morpheus | fan | fan1 | 2200 |
| 2008-08-25 11:00:00 | morpheus | fan | fan2 | 2300 |
| 2008-08-25 11:00:00 | morpheus | temp | mb | 40 |
+---------------------+------------+------------+------------+---------------+
7 rows in set (0.00 sec)
mysql> select horaire, nommachine, TypeReleve, Nomcapteur, ValeurCapteur
-> from minisnmp
-> where NomMachine='morpheus'
-> union all
-> select m.horaire, m.nommachine, t.TypeReleve,t.Nomcapteur, NULL as ValeurCapteur
-> from minisnmp m
-> join (select distinct TypeReleve,Nomcapteur from minisnmp) t
-> where m.NomMachine='morpheus'
-> and m.typereleve=t.typereleve
-> and not exists (select 1 from minisnmp m2
-> where m2.Horaire=m.Horaire
-> and m2.nommachine=m.nommachine
-> and m2.TypeReleve=t.TypeReleve
-> and m2.nomcapteur=t.nomcapteur)
-> order by Horaire;
+---------------------+------------+------------+------------+---------------+
| horaire | nommachine | TypeReleve | Nomcapteur | ValeurCapteur |
+---------------------+------------+------------+------------+---------------+
| 2008-08-25 10:00:00 | morpheus | fan | fan1 | 2200 |
| 2008-08-25 10:00:00 | morpheus | fan | fan2 | 2300 |
| 2008-08-25 10:00:00 | morpheus | temp | cpu | 52 |
| 2008-08-25 10:00:00 | morpheus | temp | mb | 40 |
| 2008-08-25 11:00:00 | morpheus | fan | fan1 | 2200 |
| 2008-08-25 11:00:00 | morpheus | fan | fan2 | 2300 |
| 2008-08-25 11:00:00 | morpheus | temp | mb | 40 |
| 2008-08-25 11:00:00 | morpheus | temp | cpu | NULL |
+---------------------+------------+------------+------------+---------------+
8 rows in set (0.00 sec) |
Partager