Je passerais par une requête imbriquée qui me donnerait le nombre par type d'équipement, jointe par une jointure externe gauche à la table des équipements pour avoir tous les types ; le CASE est la touche finale qui permet d'afficher un total de 0 pour les équipements qui ne figurent pas dans l'historique.
SELECT e.type_equipement, CASE WHEN nb_code IS NULL THEN 0 ELSE nb_code END FROM equipement e LEFT OUTER JOIN (SELECT type_equipement, COUNT(*) as nb_code FROM mvt_equipement GROUP BY type_equipement) m USING (type_equipement)
Attention, la requête n'est pas testée (il y a peut-être quelques petits problèmes de syntaxe), mais c'est pour donner l'esprit...
Partager