SELECT DISTINCTROW P.ID, First(I.Type) AS [First Of Type], Count(*) AS [Count Of I]
FROM P INNER JOIN I ON P.[ID] = I.[P ID]
GROUP BY P.ID;
Где типы «a» и «b». Мой запрос возвратит:SQL: Запрос возвращает количество записей со специфическим значением в виде столбца
ID First of Type Count of I
1 a 6
Это замечательно, но то, что я хотел бы это:
ID First of Type Count of I Count of a Count of b
1 a 6 2 4
Я не могу понять, как сделать эту работу. Любая помощь приветствуется!
EDIT:
Я делаю это в Access. Мои таблицы выглядят следующим образом:
Table P
ID Name
1 Alice
2 Bob
Table I
ID P ID Type
1 1 a
2 1 b
3 1 a
4 1 b
5 1 b
6 1 b
7 2 b
И я хочу, чтобы вернуть
ID First of Type Count of I Count of a Count of b
1 a 6 2 4
2 b 1 0 1
Надеется, что это имеет смысл. Я попытался использовать синтаксис «union all», но не повезло с тем, что я пытаюсь до сих пор.
Пожалуйста, разместите образец структуры данных. Какие СУБД вы используете? – Learner
Ну, во-первых, вы должны добавить еще 2 условия в свой выбор, а затем попробуйте использовать LEFT JOIN. –