Contagem de registros do MS Access 2016 com contagem de subconsultas com resultado percentual

Contagem de registros do MS Access 2016 com contagem de subconsultas com resultado percentual

Tenho uma consulta que conta a quantidade de registros em uma tabela que contém uma quantidade de tickets de reparo, e o resultado é a quantidade de tickets de reparo por empresa que foram concluídos. Exemplo; Código da empresa | NomedaEmpresa | Contagem de ingressos

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));

Agora, o que estou tendo dificuldade em entender é isso. Cada um dos registros contados possui um campo para marcar o ticket como tendo atendido um SLA. O campo é um campo de texto com um "Y" ou um "N".

O que estou tentando fazer é contar o número de registros na consulta acima, que atendem aos critérios de "Y" ou "N" e, em seguida, dividir esse resultado pela contagem da consulta principal para obter uma porcentagem de reparar tickets que correspondam aos critérios. Portanto, do número x de tickets de reparo da empresa xyz, x% cumpriram o SLA.

Sei que isso provavelmente envolveria uma subconsulta, mas não tenho certeza de como codificá-la ou onde colocar a subconsulta.

Gostaria de ter o resultado como parte da mesma tabela de resultados, ou seja. Código da empresa | NomedaEmpresa | ContagemDeTickets | % de SLA cumprido

Não sei se a solução seria simples ou não, mas já estou trabalhando nisso há algum tempo e simplesmente não consigo ver.

Qualquer ajuda seria muito apreciada.

Obrigado por reservar um tempo para revisar esta postagem e por qualquer ajuda fornecida.

Greg

Responder1

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

Explicação: a Sum(iif(MetSLA, 1, 0))expressão conta efetivamente as linhas onde o sinalizador MetSLA está definido (verdadeiro/sim). Sumé aplicado como uma função agregada depois que as linhas são agrupadas (como Countestá). Assim, você obtém uma contagem de linhas MetSLA=yes como uma porcentagem de linhas dessa empresa (já que o agrupamento é por empresa).

informação relacionada