我有以下代码,告诉我哪些订单项进出SLA
。
如何将其转换为%
,例如,当我将它们添加到一起时,它将显示98%SLA
遇见。
,CASE
WHEN m.COMPLETED_DT is NULL THEN ''
WHEN m.COMPLETED_DT <= m.SLA_ADJUSTED_DT THEN 'SLA Met'
WHEN m.SLA_ADJUSTED_DT IS NULL THEN 'SLA Met'
ELSE 'SLA Missed' END AS "SLA Desc"
如果我已经得到了结果,我认为它看起来像......
SELECT (count(*) * 100 / (select count(*) FROM testtable)) AS YesSLA
FROM testtable where SLA='Yes';
我不确定如何将其与我当前的陈述相结合,我不相信我可以在新陈述中引用AS SLA Desc
。
答案 0 :(得分:1)
这样做你想要的吗?
select 100 * avg(case when m.completed_dt <= m.SLA_ADJUSTED_DT or m.SLA_ADJUSTED_DT is null
then 1.0 else 0
end)
from testtable
where SLA = 'Yes';
答案 1 :(得分:0)
下面的代码通过仅计算符合SLA的值然后除以总机会来计算100%符合SLA的百分比。
DECLARE @Data TABLE (COMPLETED_DT DATETIME, SLA_ADJUSTED_DT DATETIME)
INSERT @Data VALUES ('5/5/2014', '5/6/2014'), ('5/6/2014', '5/6/2014'), ('5/7/2014', '5/6/2014')
SELECT
CONVERT(FLOAT, SUM(CASE WHEN COMPLETED_DT <= SLA_ADJUSTED_DT THEN 1 ELSE 0 END)) * 100 / COUNT(1) AS [% Met SLA]
FROM @Data
<强>输出强>
% Met SLA
----------------------
66.6666666666667