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 Count
está). Assim, você obtém uma contagem de linhas MetSLA=yes como uma porcentagem de linhas dessa empresa (já que o agrupamento é por empresa).