[SQL] Count() afficher les ligne avec des 0

Count() afficher les ligne avec des 0 [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 22-05-2003 à 10:32:12    

Je fais la requete suivante
 
SELECT description,count(*)
FROM ma_table
GROUP BY description
 
Ca m'affice donc les description avec le nombre de lignes trouvé en face.
 
Maintenent je fait la meme requete mais en ajoutant:
 
WHERE date BETWEEN date1 AND date2  
 
Et la sa ne m'affiche que les lignes dont les dates sont entre date1 et date2 (normal  :D ). Mais moi je voudrai que ca m'affiche toute les lignes comme au début avec 0 en face des description qui ne sont pas entre ces deux date.
 :??:  :jap:  


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 22-05-2003 à 10:32:12   

Reply

Marsh Posté le 22-05-2003 à 11:15:26    

Cf fonction nvl (oracle uniquement)

Reply

Marsh Posté le 22-05-2003 à 11:23:01    

déjà essayé, marche pô  :(


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 22-05-2003 à 20:05:36    

SELECT description,count(*)
  FROM ma_table
  GROUP BY description
  WHERE date BETWEEN date1 AND date2  
UNION
SELECT description,0
  FROM ma_table
  GROUP BY description
  WHERE date NOT BETWEEN date1 AND date2  

Reply

Marsh Posté le 22-05-2003 à 20:13:23    

Agagax a écrit :

SELECT description,count(*)
  FROM ma_table
  GROUP BY description
  WHERE date BETWEEN date1 AND date2  
UNION
SELECT description,0
  FROM ma_table
  GROUP BY description
  WHERE date NOT BETWEEN date1 AND date2  
 


 
Deja essayé aussi,
Ca marche pas il me mets des lignes en double et avec UNION ALL elles ne partent pas.


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 22-05-2003 à 20:20:15    

Bizarre...  
Quelles lignes sont en double ?
Es-tu sûr que qu'il n'y a pas des espaces après tes valeurs dans Description ? dans ce cas les virer en regroupant sur rtrim(description)

Reply

Marsh Posté le 23-05-2003 à 08:53:16    

Ca me fait un resultat de se genre:
 

Description_1    0
Description_2    3
Description_2    0
Description_4    0
Description_5    5
Description_5    0


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 23-05-2003 à 09:31:54    

J'ai trouvé une solution a la barbar  :D  
 

SELECT description,count(*)
  FROM ma_table
  WHERE date BETWEEN date1 AND date2
  GROUP BY description  
UNION
SELECT description,0
  FROM ma_table
  WHERE iddescription NOT IN (SELECT DISTINCT iddescription
                              FROM ma_table
                              WHERE date BETWEEN date1 AND date2)


 
 


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed