Bonjour,
j'ai une table contenant des libellés.
Chaque libellé correspond à un local (un n°) et à un id (un autre n°).
Chaque libellé a également une date et un champ de type booléen.
Un local peut avoir plusieurs libellés, de même qu'un id.
Je souhaite récupérer le nombre de libellés ayant '0' en champ booléen pour chaque local, pour un id donné.
Ce qui me donne pour le moment, cette requête :
$id étant l'id que je récupère en php.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DISTINCT numerolocal, COUNT(id) AS nb FROM matable WHERE id = '.$id.' AND champ_booleen = 0 GROUP BY numerolocal
J'obtiens :
Jusque là, pas de problème.N°local -> nb d'id
1 -> 3
4 -> 3
6 -> 2
Maintenant, je souhaite toujours faire la même requête mais en comptant uniquement les id où le libellé ne commence pas par ">>".
J'ai donc fait ceci :
Et cette requête m'enlève totalement un local si au moins un libellé commence par ">>".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT DISTINCT numerolocal, libelle, COUNT(id) AS nb FROM matable WHERE id = 21341 AND champ_booleen = 0 GROUP BY numerolocal HAVING libelle NOT LIKE ">>%"
J'obtiens :
Le local 6 a été sorti parce qu'un des deux libellés commençait par ">>".N°local -> nb d'id
1 -> 3
4 -> 3
Comment puis-je faire ?
Merci
Partager