十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,
创新互联:2013年至今为各行业开拓出企业自己的“网站建设”服务,为上1000家公司企业提供了专业的网站制作、网站建设、网页设计和网站推广服务, 定制网站由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。
sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,
sum(case when status='RESOLVED' then 1 else 0 end)+0.0001/count(*) as 完成率
from INCIDENT
group by REALHANDLER
)+0.0001试一下 因为返回的类型和sum(case when status='RESOLVED' then 1 else 0 end),count(*) 一样
在C1输入公式=text(round(A1/b1,4),"0.00%"),回车即可得出C1的结果。C2、C3步骤与之相同。
这里text函数用来将括号内的值转换为%形式;round函数用来四舍五入商的值。
sql2005以后.优先使用如下方式,扩展性强。
---------------------------------------------------------------------
select A.* from
(
SELECT ROW_NUMBER() OVER(ORDER BY ID DESC) AS rownum ,B.*
FROM dbo.testB
) A
where A.rownum=1 and A.rownum=(select count(*)*3/10 from dbo.test)
---------------------------------------------------------------------
2000 数据库
SELECT TOP (select count(*)*3/10 from dbo.test) * FROM test order by ID DESC
----------------------------------------------------------
--sql 2000
declare @tb table(row int identity(1,1),故障总成件 varchar(100),数量 int,占比 float)
insert into @tb select * from tb
select 故障总成件,数量,占比,累计百分比=(select sum(占比) from @tb t2 where t2.row=t1.row) from @tb t1
--sql 2005
with tc as(
select row=row_number()over(order by getdate()),* from tb
),
cte as(
select *,累计百分比=cast(占比 as decimal(28,3)) from tc where row=1 union all
select t.row,t.故障总成件,t.数量,t.占比,cast(c.累计百分比+t.占比 as decimal(28,3)) from tc t join cte c on t.row=c.row+1
)
select * from cte