Надеюсь, я могу сформулировать это правильно.У меня есть 3 таблицы в базе данных Risk & Control.
Таблица 1 содержит подробную информацию обо всех рисках и их вероятности возникновения.Идентификатор риска является уникальным значением:
Risk ID |Risk Desc |Impact | Likelihood
4363 | XXX | High | Likely
2357 | XXX | Low | Unlikely
7629 | XXX | Medium | Unlikely
1929 | XXX | Low | Likely
Таблица 2 содержит подробную информацию обо всех элементах управления и оценку их эффективности.Идентификатор элемента управления является уникальным значением:
Control ID | Control Rating
4566 | Effective
1431 | Not Effective
6724 | Effective
3415 | Effective
Таблица 3 содержит сопоставление рисков с их связанными элементами управления в виде отношения «многие ко многим», т. Е. Риск может быть связан с несколькими элементами управления и наоборот.
Risk ID | Control |
4363 | 4566 |
4363 | 1431 |
2357 | 4566 |
7629 | 6724 |
Я пытаюсь создать представление обо всех рисках и агрегированное представление об их эффективности контроля с помощью трех столбцов подсчета.Один, который подсчитывает общее количество связанных элементов управления, один, который подсчитывает общее количество ЭФФЕКТИВНЫХ элементов управления, и тот, который подсчитывает общее количество НЕЭФФЕКТИВНЫХ элементов управления.
Вывод будет выглядеть следующим образом:
Risk ID |Risk Desc |Impact | Likelihood | Controls | Effective | Not Effective
4363 | XXX | High | Likely | 2 | 1 | 1
2357 | XXX | Low | Unlikely | 1 | 1 | 0
7629 | XXX | Medium | Unlikely | 1 | 1 | 0
1929 | XXX | Low | Likely | 1 | 0 | 1
Мне удалось получить первую часть, но я не уверен, как мне добавить другие подсчеты?
SELECT Table_1.RISK_ID,
Table_1.RISK_DESC,
Table_1.Impact,
Table_1.Likelihood,
COUNT(TABLE_2.CONTROL_ID) AS Total_Controls
FROM Table_1
INNER JOIN Table_2
ON Table_1.RISK_ID = Table_2.RISK_ID
GROUP BY Table_1.RISK_ID,
Table_1.RISK_DESC,
Table_1.Impact,
Table_1.Likelihood
Любая помощь очень ценится.