SQL Server 2000, obtenez COUNT (ID DISTINCT) avec une condition que je ne peux pas écrire dans mon O WH?

Tout d'abord, je ne veux pas utiliser une "jointure" car cela rendra ma requête plus longue et plus difficile à lire. Donc ce que je dois faire doit être avec la même instruction SELECT.

Mes colonnes dans myTable sont A, B, C, D, heure, ID et H

H columnd indique si un logging est 'Ouvert' ou 'Fermer', voici à quoi ressemble ma requête.

SELECT A, B, C, D, COUNT(DISTINCT ID) AS numberOfRecords, SUM(time) / COUNT(DISTINCT ID) AS averageTimeOfAllRecords FROM myTable WHERE ISNUMERIC(A)=1 AND A IN (SELECT A FROM myTable2) GROUP BY A,B,C,D 

J'ai besoin de la requête ci-dessus pour returnner une autre colonne avec un résultat: COUNT (ID DISTINCT) WHERE H = 'Ouvrir' pour que je puisse get numberOfOpenRecords.

Je ne peux pas écrire ma nouvelle condition sur "WHERE", car cela affectera les résultats, comme numberOfRecords.

J'espère avoir expliqué mon problème.

Merci pour les aides.

Puisque le count ne count pas null valeurs null , vous pouvez:

 count(distinct case when H = 'Open' then id else null end)