Bonjour,
j'essaie d'obtenir une liste d'éléments dans une table, et la liste des enfants associés dans la même table. Chaque élément enfant contient l'identifiant du parent dans un champ. Les éléments qui n'ont pas de parent ont le champ "parent" à 0.
La requête que j'ai actuellement :
Code : Tout sélectionner
SELECT MONTH(R.date_releve) AS num_month, C.numero, SUM(R.total)
FROM releves R, compteurs C, sites S
WHERE R.compteur_id = C.numero
AND C.site_id = S.id
AND YEAR(R.date_releve) = 2007
AND C.parent = 0
AND S.id = 4
GROUP BY num_month, C.numero
ORDER BY C.numero, num_monthJ'ai besoin, dans cette requête, de renvoyer :
La liste des compteurs principaux (pas d'enfants) -> ok
La liste des compteurs enfants (récursivité)
Les mois ou ont été effectués un prélèvement sur ces compteurs -> ok
La somme des prélèvements par mois pour une année -> ok
Il me manque, finalement, ce qui me semble le plus compliqué : la récursivité.
Pour information :
compteurs(id, numero, numero_serie, marque, diametre, annee_fab, alimentation, archive, site_id, parent)
Code : Tout sélectionner
CREATE TABLE `compteurs` (
`id` int(11) NOT NULL auto_increment,
`numero` varchar(20) NOT NULL,
`numero_serie` varchar(20) NOT NULL,
`marque` varchar(25) default NULL,
`diametre` int(10) default NULL,
`annee_fab` year(4) default NULL,
`alimentation` varchar(255) default NULL,
`archive` tinyint(1) default NULL,
`site_id` int(11) NOT NULL,
`parent` int(11) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `numero` (`numero`,`numero_serie`)
)EDIT
Voici ce que j'obtiens actuellement :
Code : Tout sélectionner
mois compteur total
1 96240778 1
2 96240778 1
3 96240778 1
4 96240778 1
5 96240778 1
6 96240778 3
7 96240778 15
9 96240778 1
7 D21 Bo 1.1 1
Merci à vous.