Bonjour à tous,
J'ai la table comptage qui contient environ 3500 records actuellement.
Cette table contient les relvé mensuel pour un parc de compteur d'électricité.
Donc à chaque relevé on ajoute un record avec la date, l'heure et les champs relevés.
Ma requête est censée récupèrer le dernier relevé le plus récent pour chaque compteur.
La table lecture contient une ligne par compteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT cpt.id_comptage, cpt.date_lecture, cpt.numero, cpt.station, cpt.date, cpt.heure, cpt.ligne, cpt.compbrut, cpt.cptchauf, cpt.corrige1, cpt.bct, cpt.bruthf, cpt.brutbf, cpt.p, cpt.t, cpt.cf, cpt.error, cpt.defcorr, cpt.defbrut, cpt.cptelecj, cpt.cptelecn, cpt.cptelecp, cpt.energie FROM lecture, comptage cpt WHERE lecture.client = cpt.numero AND lecture.ligne = cpt.ligne AND cpt.date_lecture = (SELECT MAX(date_lecture) FROM comptage WHERE numero = cpt.numero AND ligne = cpt.ligne )
Un client peut avoir plusieurs compteurs:
client 10 ligne1, ligne2, ligne3.....
Cette requête prend environ 5 minutes pour s'exécuter, comment faire pour optimiser ?
Partager