MS Access 2016 Количество записей с количеством подзапросов с процентным результатом

445
Greg

У меня есть запрос, который подсчитывает количество записей в таблице, содержащей количество билетов на ремонт, и в результате получается количество билетов на ремонт по компании, которые были завершены. Пример; Код компании | CompnayName | CountOfTickets

SELECT  Incident.CompanyCode, Count(Incident.CompanyCode) AS IncCount FROM  Incident GROUP BY Incident.CompanyCode, Incident.IncidentType, Incident.IncidentClosed HAVING (((Incident.IncidentType)="On - Site") AND  ((Incident.IncidentClosed)=True)); 

Теперь то, что я испытываю с трудом, чтобы моя голова была обернута вокруг это, это. Каждая из подсчитываемых записей имеет поле для пометки билета как соответствующего SLA. Поле представляет собой текстовое поле с буквой «Y» или «N».

Я пытаюсь подсчитать количество записей в приведенном выше запросе, которое соответствует критериям «Y» или «N», а затем разделить полученный результат на счет основного запроса, чтобы получить процент ремонт билетов, которые соответствуют критериям. Таким образом, из x количества билетов на ремонт компании xyz, x% выполнили SLA.

Я знаю, что это, вероятно, будет включать подзапрос, но я не уверен, как его кодировать или где разместить подзапрос.

Я хотел бы получить результат как часть той же таблицы результатов, т. Е. .. Companycode | CompnayName | CountOfTickets | % Met SLA

Я не знаю, будет ли решение простым или нет, но я уже некоторое время работаю над этим и просто не вижу его.

Любая помощь будет высоко оценен.

Спасибо, что нашли время, чтобы просмотреть этот пост и за любую помощь, которая предоставляется.

Greg

0

1 ответ на вопрос

0
andrew
SELECT  CompanyName,  CompanyCode,  Count(*),  Sum(iif(MetSLA, 1, 0))/Count(*) * 100 FROM  Incident WHERE  IncidentType = "On - Site"  AND IncidentClosed = Yes GROUP BY  CompanyName, CompanyCode; 

Объяснение: Sum(iif(MetSLA, 1, 0))выражение эффективно подсчитывает строки, в которых установлен флаг MetSLA (true / yes). Sumприменяется как агрегатная функция после группировки строк (как Countесть). Таким образом, вы получаете количество строк MetSLA = yes в процентах от количества строк для этой компании (поскольку группировка осуществляется по компании).

Похожие вопросы