Percentual sql server
Boa tarde, possuo a consulta abaixo na qual preciso mostrar o percentual de cada sistema a regra seria o total do campo de quantidade_incidentes dividido por cada quantidade de sistmas
select distinct
[STATUS],
product_categorization_tier_3 as SISTEMAS,
count (resolution_category ) as QTD_INCIDENTES
from
VIEW_INC_FECHADOS_MES
where [nivel de atendimento] = 'n1'
and [nivel de atendimento2] = 'n1'
and assigned_support_company_1 = 'Capgemini'
and assigned_support_company_2 = 'Capgemini'
and assigned_sup_organization_2 = 'Gestão de Serviços de TI'
and [status] = 'CLOSED'
and resolution_category = 'sistemas'
group by [status],
product_categorization_tier_3,
resolution_category
imagem
[img:descricao=Resultado da consulta]http://arquivo.devmedia.com.br/forum/imagem/412630-20150219-130821.jpg[/img]
poderiam por favor me ajudar
select distinct
[STATUS],
product_categorization_tier_3 as SISTEMAS,
count (resolution_category ) as QTD_INCIDENTES
from
VIEW_INC_FECHADOS_MES
where [nivel de atendimento] = 'n1'
and [nivel de atendimento2] = 'n1'
and assigned_support_company_1 = 'Capgemini'
and assigned_support_company_2 = 'Capgemini'
and assigned_sup_organization_2 = 'Gestão de Serviços de TI'
and [status] = 'CLOSED'
and resolution_category = 'sistemas'
group by [status],
product_categorization_tier_3,
resolution_category
imagem
[img:descricao=Resultado da consulta]http://arquivo.devmedia.com.br/forum/imagem/412630-20150219-130821.jpg[/img]
poderiam por favor me ajudar
Claudio Marcelino
Curtidas 0
Respostas
Isaac Jose
19/02/2015
crie um campo com a comparação que deseja contando a quantidade de sistemas
percent = select count(sistemas) VIEW_INC_FECHADOS_MES/qtd_incidentes
percent = select count(sistemas) VIEW_INC_FECHADOS_MES/qtd_incidentes
GOSTEI 0
Isaac Jose
19/02/2015
amigo nao tinha visto o seu quadro direito desculpa... acho que a conta que vc esta querendo fazer e a seguinte
100/294*quantidade_incidentes
ou seja
100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema
ex 10/294*128 = 43,537 e assim por diante
100/294*quantidade_incidentes
ou seja
100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema
ex 10/294*128 = 43,537 e assim por diante
GOSTEI 0
Claudio Lopes
19/02/2015
Não esqueça de converter o resultado em float, caso nenhum dos produtos da conta estejam nesse formato
GOSTEI 0
Claudio Marcelino
19/02/2015
opa Isaac,
não entendi muito bem onde posso inserir o calculo " 100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema"
na minha consulta.
não entendi muito bem onde posso inserir o calculo " 100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema"
na minha consulta.
GOSTEI 0
Claudio Marcelino
19/02/2015
opa Isaac,
não entendi muito bem onde posso inserir o calculo " 100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema"
na minha consulta.
não entendi muito bem onde posso inserir o calculo " 100/sum(quantidade_incidentes)
* quantidade_incidentes daquele sistema"
na minha consulta.
GOSTEI 0
Isaac Jose
19/02/2015
cria um campo para receber esse valor
GOSTEI 0
Claudio Marcelino
19/02/2015
eu fiz da forma abaixo porem o campo de porcentagem esta vindo vazio
select distinct
[STATUS],
product_categorization_tier_3 as SISTEMAS,
count (resolution_category ) as QTD_INCIDENTES,
(count(*)/count(resolution_category ))/100 as Perc
from
VIEW_INC_FECHADOS_MES
where (1=1)
and [nivel de atendimento] = 'n1'
and [nivel de atendimento2] = 'n1'
and assigned_support_company_1 = 'Capgemini'
and assigned_support_company_2 = 'Capgemini'
and assigned_sup_organization_2 = 'Gestão de Serviços de TI'
and [status] = 'CLOSED'
and resolution_category = 'sistemas'
group by [status],
product_categorization_tier_3,
resolution_category
[img:descricao=com campo perc]http://arquivo.devmedia.com.br/forum/imagem/412630-20150219-161131.jpg[/img]
select distinct
[STATUS],
product_categorization_tier_3 as SISTEMAS,
count (resolution_category ) as QTD_INCIDENTES,
(count(*)/count(resolution_category ))/100 as Perc
from
VIEW_INC_FECHADOS_MES
where (1=1)
and [nivel de atendimento] = 'n1'
and [nivel de atendimento2] = 'n1'
and assigned_support_company_1 = 'Capgemini'
and assigned_support_company_2 = 'Capgemini'
and assigned_sup_organization_2 = 'Gestão de Serviços de TI'
and [status] = 'CLOSED'
and resolution_category = 'sistemas'
group by [status],
product_categorization_tier_3,
resolution_category
[img:descricao=com campo perc]http://arquivo.devmedia.com.br/forum/imagem/412630-20150219-161131.jpg[/img]
GOSTEI 0
Renato Rubinho
19/02/2015
Buenas,
Dependendo do volume de dados da sua tabela isso pode ficar pesado, mas segue uma sugestão pesquisando para cada registro o total de registros gerado na consulta.
Dependendo do volume de dados da sua tabela isso pode ficar pesado, mas segue uma sugestão pesquisando para cada registro o total de registros gerado na consulta.
select distinct [STATUS], product_categorization_tier_3 as SISTEMAS, count(resolution_category) as QTD_INCIDENTES, // CAMPO PERCENTUAL INICIO count(resolution_category) * 100 / ( SELECT COUNT(1) from VIEW_INC_FECHADOS_MES where [nivel de atendimento] = 'n1' and [nivel de atendimento2] = 'n1' and assigned_support_company_1 = 'Capgemini' and assigned_support_company_2 = 'Capgemini' and assigned_sup_organization_2 = 'Gestão de Serviços de TI' and [status] = 'CLOSED' and resolution_category = 'sistemas' group by [status], product_categorization_tier_3, resolution_category ) PERC // CAMPO PERCENTUAL FIM from VIEW_INC_FECHADOS_MES where [nivel de atendimento] = 'n1' and [nivel de atendimento2] = 'n1' and assigned_support_company_1 = 'Capgemini' and assigned_support_company_2 = 'Capgemini' and assigned_sup_organization_2 = 'Gestão de Serviços de TI' and [status] = 'CLOSED' and resolution_category = 'sistemas' group by [status], product_categorization_tier_3, resolution_category
GOSTEI 0
Marcos P
19/02/2015
Crie uma variável local que, rodando exatamente do mesmo set de dados ( FROM ) e sob as mesmas condições ( WHERE ), armazene o total geral que você precisa...
Depois divida direto essa variável local quando for fazer o detalhamento dos itens ( GROUP BY ).
São duas queries, mas o resultado será processado mais rápido que tentar totalizar individualmente na query principal.
Espero ter ajudado...
Depois divida direto essa variável local quando for fazer o detalhamento dos itens ( GROUP BY ).
Declare @TOTAL Float Set @TOTAL = (select count(resolution_category) from VIEW_INC_FECHADOS_MES where [nivel de atendimento] = 'n1' and [nivel de atendimento2] = 'n1' and assigned_support_company_1 = 'Capgemini' and assigned_support_company_2 = 'Capgemini' and assigned_sup_organization_2 = 'Gestão de Serviços de TI' and [status] = 'CLOSED' and resolution_category = 'sistemas') select distinct [STATUS], product_categorization_tier_3 as SISTEMAS, count (resolution_category ) as QTD_INCIDENTES, convert(float, (count (resolution_category ) / @TOTAL)*100) as PERC from VIEW_INC_FECHADOS_MES where [nivel de atendimento] = 'n1' and [nivel de atendimento2] = 'n1' and assigned_support_company_1 = 'Capgemini' and assigned_support_company_2 = 'Capgemini' and assigned_sup_organization_2 = 'Gestão de Serviços de TI' and [status] = 'CLOSED' and resolution_category = 'sistemas' group by [status], product_categorization_tier_3, resolution_category
São duas queries, mas o resultado será processado mais rápido que tentar totalizar individualmente na query principal.
Espero ter ajudado...
GOSTEI 0
Claudio Marcelino
19/02/2015
Pessoal,
muito obrigado a todos pela a ajuda.
Marcos P deu certo...
abs
muito obrigado a todos pela a ajuda.
Marcos P deu certo...
abs
GOSTEI 0