COUNT() = 0 ne s'affiche pas

cs_djawadshow Messages postés 11 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 17 octobre 2010 - 17 oct. 2010 à 15:22
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 24 oct. 2010 à 19:30
Bonjour
Comme c'est le de plusieurs personne, je n'arrive pas a avoir la ligne quand le count() = 0
dans pour mieux vous illustrer ma table "BIEN" voici un appercu:

-----ID------TRANSACTION--------TYPE----------------ETAT-----------PIECES-----------
---------------------------------------------------------------------------
-----1-----------Vente--------Appartement---------#FFFFFF-----------F2-----------
-----2-----------Vente--------Appartement---------#FFFFFF-----------F4-----------
-----3-----------Vente--------Appartement---------#FFCC00-----------F2-----------
-----4-----------Vente-----------Villa-----------#ababab-----------R+1-----------
-----5-----------Vente--------Appartement---------#FFCC00-----------F3-----------
-----6-----------Vente-----------Villa------------#FFCC00-----------R+2-----------
-----7-----------Vente--------Appartement---------#FFFFFF-----------F4-----------
-----8-----------Vente--------Appartement---------#ababab-----------F5-----------
-----9-----------Vente-----------Villa------------#FFCC00-----------R+1-----------
----10-----------Vente--------Appartement---------#FFCC00-----------F4-----------



SELECT CASE etat
WHEN  '#FFFFFF'
THEN  'appart disponibles'
WHEN  '#9fcbef'
THEN  'client injoignable'
WHEN  '#FFCC00'
THEN  'appart NON visités'
WHEN  '#ababab'
THEN  'Affaires annulées'
END AS etat, COUNT(  'etat' ) AS nb
FROM  `bien` 
WHERE  `transaction` =  'vente'
AND `type` =  'appartement'
GROUP BY  `etat`


donc après exécution de ma requette SQL voici le résultat affiché:

----------ETAT--------------------nb--------
------------------------------------------------
----appart disponibles-----------3--------
----appart NON visités-----------3--------
----Affaires annulées------------1--------

et mon souait est d'avoir ce résultat: la ligne ou il y a zero éléments

----------ETAT--------------------nb--------
------------------------------------------------
----appart disponibles-----------3--------
----client injoignable-----------3--------
----appart NON visités-----------1--------
<couleur nom="rouge">----client injoignable------------0--------</couleur>

je vous remercie
A voir également:

2 réponses

cs_djawadshow Messages postés 11 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 17 octobre 2010
17 oct. 2010 à 17:55
up
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
24 oct. 2010 à 19:30
Bonsoir

En effet, une requette ne retourne pas le nombre de ligne qui n'existe pas
il te faut faire 2 requettes séparées, et les unir
/* on traite tout sauf les clients injoignables */
SELECT 
 CASE etat 
  WHEN '#FFFFFF' 
  THEN 'appart disponibles' 
  WHEN '#FFCC00' 
  THEN 'appart NON visités' 
  WHEN '#ababab' 
  THEN 'Affaires annulées' 
 END AS etat, 
 COUNT( 'etat' ) AS nb 
 FROM bien  WHERE [transaction] = 'vente' AND type = 'appartement' AND etat <> '#9fcbef' GROUP BY etat

union all 

/* on ajoute les clients injoignables */
SELECT 'client injoignable' AS Expr2, COUNT(*) AS Expr1 FROM bien WHERE (etat = '#9fcbef')



Bob
C# is amazing, enjoy it!
0
Rejoignez-nous