2010-05-12 2 views
0

Nombre total d'enregistrements dans le tableau sont 10.Comment compter deux champs à l'aide de l'instruction Select dans SQL Server 2005?

Select count(ID) from table1 where col1 = 1 (Result is 8) 
Select count(ID) from table1 where col1 = 0 (Result is 2) 

donc son un même table, mais le nombre est basé sur des conditions différentes. Comment vais-je obtenir deux résultats (comptes) en utilisant une déclaration select?

La performance est également une grande préoccupation ici.

PS: J'utilise la procédure stockée ...

EDIT: Je veux effacer la requête ci-dessus est juste une partie d'une grande logique SP (pour moi au moins). Depuis que j'ai eu ces réponses suivantes, il a donné une autre idée pour l'obtenir de manière différente. Ma question ci-dessus est un peu changé maintenant ..... S'il vous plaît aider ici? C'est un même col (type booléen) avec un état vrai ou faux.

Répondre

5

utilisation:

SELECT 
    SUM(CASE col1 WHEN 1 THEN 1 ELSE 0 END) AS Count1, 
    SUM(CASE col1 WHEN 0 THEN 1 ELSE 0 END) AS Count0 
FROM table1 
+0

+1 Voilà comment je le ferais –

+0

D'accord avec @KM . Comment fait-on ça? – Jango

+0

Ma question est un peu changé .. s'il vous plaît lire à nouveau .. – Jango

1

Vous devez utiliser des sous-requêtes ou SYNDICATS, je ne vois pas d'autre façon ...

Questions connexes