SQL : count(*) NULL
Résolu
Stef60
Messages postés
251
Date d'inscription
Statut
Membre
Dernière intervention
-
Stef60 Messages postés 251 Date d'inscription Statut Membre Dernière intervention -
Stef60 Messages postés 251 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un souci avec une requete SQL
voici la requete:
SELECT count(DISTINCT a.id), count(DISTINCT b.id) , count(DISTINCT c.id), count(DISTINCT d.id)
FROM
(SELECT id FROM table WHERE prj_id="18" AND status="10") a,
(SELECT id FROM table WHERE prj_id="18" AND status="15") b,
(SELECT id FROM table WHERE prj_id="18" AND status="20") c,
(SELECT id FROM table WHERE prj_id="18" AND status="40") d
Mon souci c'est que si une des requetes de la clause FROM (a->d) ne retourne aucune valeur
alors tous mes count sont egale a 0
Comment contourner ce probleme?
D'avance merci.
j'ai un souci avec une requete SQL
voici la requete:
SELECT count(DISTINCT a.id), count(DISTINCT b.id) , count(DISTINCT c.id), count(DISTINCT d.id)
FROM
(SELECT id FROM table WHERE prj_id="18" AND status="10") a,
(SELECT id FROM table WHERE prj_id="18" AND status="15") b,
(SELECT id FROM table WHERE prj_id="18" AND status="20") c,
(SELECT id FROM table WHERE prj_id="18" AND status="40") d
Mon souci c'est que si une des requetes de la clause FROM (a->d) ne retourne aucune valeur
alors tous mes count sont egale a 0
Comment contourner ce probleme?
D'avance merci.
A voir également:
- SQL : count(*) NULL
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
3 réponses
j'ai trouvé la solution.
SELECT a.cnt
, b.cnt
, c.cnt
, d.cnt
FROM ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='10'
) AS a
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='15'
) AS b
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='20'
) AS c
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='40'
) AS d
SELECT a.cnt
, b.cnt
, c.cnt
, d.cnt
FROM ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='10'
) AS a
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='15'
) AS b
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='20'
) AS c
, ( SELECT COUNT(DISTINCT id) AS cnt
FROM matable
WHERE prj_id='18'
AND STATUS='40'
) AS d