Ho una tabella che memorizza più articoli per uno stato e voglio ottenere il conteggio per ogni stato in base a condizioni specifiche. Ho scritto questa query:Case e conteggi in SQL Server 2008
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
ma ottengo questo errore:
Column 'State_ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Quando ho aggiunto GROUP BY
clausola Per State_ID, ho ottenuto in precedenza l'errore ancora per STATE_NAME, e quando ha aggiunto STATE_NAME a GROUP BY
clausola, ho ottenuto errore per State_All, State_w, State_s.
Non ho una colonna denominata State_All, State_w, State_s nella mia tabella.
Come è possibile ottenere il conteggio in base a condizioni specifiche senza utilizzare CURSORS
?
Hai solo cambiato il modo in cui le colonne sono alias. OP ha già provato GROUP BY – gbn