Bonjour
J'ai 3 tables: fiche (IdFiche, Nom, ...), passages (IdPassage, IdFiche, DatePassage, ...) et piecesjointes (IdPieceJointe, IdFiche, DateCre, ...).
Je dois récupérer la liste des fiches n'ayant aucune pièce jointe ni aucun passage datant de moins de 18 mois.
J'ai donc fait la requête suivante :
Le petit hic, c'est que au lieu de me renvoyer le nombre n d'éléments, il me renvoie n fois 1. Je sais qu'il me suffirait de compter le nombre de 1, mais je préfèrerais quand même récupérer directement la bonne valeur. Je sais pas vraiment comment résoudre le problème, sur le coup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT COUNT(fe.IdFiche) AS NbFiches FROM fiche AS fe LEFT JOIN passages AS p ON fe.IdFiche = p.IdFiche AND p.DatePassage > NOW() - INTERVAL 18 MONTH LEFT JOIN piecesjointes AS pj ON fe.IdFiche = pj.IdFiche AND pj.DateCre > NOW() - INTERVAL 18 MONTH GROUP BY fe.IdFiche HAVING COUNT(IdPassage) = 0 AND COUNT(IdPieceJointe) = 0
PS: je travaille sur MySQL 5.0 en développement et MySQL 3.23 en production (pas le choix de la version, malheureusement)
Partager