Rechercher : dans
Par :

SQL : count(*) NULL

Dernière réponse le 5 déc 2007 à 17:11:54 Stef60, le 5 déc 2007 à 14:54:40 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « SQL : count(*) NULL » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Visual FoxPro et SQL-Server VoirVisual Foxpro 9 et SQL-Server 2005 Quoi de mieux que Visual FoxPro pour bien utiliser SQL-Server ? Voici une question intéressante ! Pour plus d'information voir l'article de Joël Post http://www.cyberfoxpro.com/joel et les fichiers...
Sauvegarde automatique d'une BDD sous SQL EXPRESS 2005 VoirSi vous vous voulez automatiser une sauvegarde d'une base de données sous SQL server express, il existe une solution simple grâce à un fichier .bat. Créez un nouveau fichier texte. Ce fichier doit contenir les informations suivantes: SET...
Télécharger MS SQL Migrate VoirPour des raisons pratique ou quasiment professionnel, il est nécessaire de convertir des bases de données entre différents formats. Le principal, c’est qu’il n’y ait aucune perte de donnée lors de la conversion. MS SQL Migrate est...
Oracle - Les requêtes hiérarchiques VoirCet article se base sur des tests et recherches réalisés dans la version 8.1.5 d'Oracle. Introduction Tout au long de cet article, nous allons nous intéresser à une structure de données permettant de créer un Forum de discussion, matérialisé par...
SQL - Restriction VoirExpression des restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique...
SQL - Contraintes d'intégrité VoirExpression de contraintes d'intégrité Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient...

1

WinGs, le 5 déc 2007 à 15:01:18

Essaye en rajoutant IS NOT NULL dans tes SELECT a->d

Répondre à WinGs

2

Stef60, le 5 déc 2007 à 15:13:58

J'ai essayé avec ca:
....
(SELECT id IS NOT NULL FROM table WHERE prj_id="18" AND status="10") a,
....

et ca me repond "Unknown column 'a.id' in 'field list'"

Répondre à Stef60

3

 Stef60, le 5 déc 2007 à 17:11:54
  • +2

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

Répondre à Stef60
Collection CommentÇaMarche.net