Mam tabelę, która przechowuje wiele elementów dla stanu i chcę uzyskać liczbę dla każdego stanu zgodnie z określonymi warunkami. Pisałem to zapytanie:Przypadek i liczba w 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
ale otrzymuję ten błąd:
Column 'State_ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Kiedy dodałem GROUP BY
klauzuli Dla state_id, mam powyżej błędu ponownie STATE_NAME, a po dodaniu STATE_NAME do GROUP BY
klauzuli I Wystąpił błąd dla State_All, State_w, State_s.
Nie mam kolumna o nazwie State_All, State_w, State_s w mojej tabeli.
Jak mogę uzyskać liczbę zgodnie z określonymi warunkami bez używania CURSORS
?
Zmieniłeś tylko, jak kolumny są aliasami. OP już próbował GROUP BY – gbn