Cas et de Compter dans SQL Server 2008

J'ai une table qui stocke plusieurs éléments pour un état et je veux obtenir le comte pour tous les états, selon des conditions spécifiques. J'ai écrit cette requête:

SELECT
    State_ID,
    State_Name,
    State_All= CASE WHEN type1=1 AND type2=1 THEN COUNT(Id) END
    State_w= CASE WHEN type1=2 AND type2=1 THEN COUNT(Id) END
    State_s= CASE WHEN type1=2 AND type2=2 THEN COUNT(Id) END
FROM
    tblStates

mais j'obtiens cette Erreur:

Column 'State_ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Quand j'ai ajouté GROUP BY clause De State_ID,j'ai eu d'erreur ci-dessus à nouveau pour State_Name,et lorsqu'il est ajouté State_Name à GROUP BY clause ,je suis d'erreur pour State_All,State_w,State_s.

Je n'ai pas de colonne appelée State_All,State_w,State_s dans ma table.

Comment je peux obtenir le comte en fonction des conditions spécifiques sans l'aide de CURSORS?

InformationsquelleAutor Arian | 2011-08-29