С учетом следующих упрощенных таблиц:
--- Incident ---
ID | ID_NUMBER | AREA
--- Vehicle ---
ID | NAME | INCIDENT_ID
Как можно подсчитать количество инцидентов, сгруппированных по области, но только если транспортные средства, связанные с инцидентом, не имеют названия, такого как M<any number><any number>
или D<any number>
?
У меня есть что-то подобное, но цифры кажутся большими:
select count(i.ID_NUMBER), i.AREA
from Incident i
inner join Vehicle v on v.INCIDENT_ID = i.ID
where v.NAME not like 'M[0-9][0-9]'
and v.NAME not like 'D[0-9]
group by i.AREA
Я думаю, что цифры слишком велики, потому что он учитывает каждую машину на инцидент, но я просто хочу сосчитать число Incident.ID
, для которого не указано c Vehicle.NAME.
Чтобы расширить пример, сделайте следующее:
---Incident---
1 | 1234 | Here
2 | 9876 | There
3 | 4567 | Here
---Vehicle---
1 | R09 | 1234
2 | F99 | 1234
3 | Q23 | 4567
4 | Y78 | 9876
5 | M42 | 9876
Результаты будут
2 | Here