我有一个百分比列,我根据另外两列计算。但是,根据另一列中的值,我可以更改该计算。
例如
server outage starttime endtime outage_seconds percentage
a 0 01/11/2015 09:14 01/11/2015 09:08 360 99.58334
b 0 01/11/2015 03:57 01/11/2015 03:34 1393 98.38774
c 1 01/11/2015 03:47 01/11/2015 03:29 1050 98.78473
d 0 01/11/2015 03:47 01/11/2015 03:29 1086 98.74306
e 1 01/11/2015 03:47 01/11/2015 03:29 1056 98.77778
如果中断列中的数据显示为0,我希望百分比列表示100%
我的代码是
SELECT [server]
,[outage]
,[starttime]
,[endtime]
,[outage_seconds] = datediff(second, 0, cast((endime - starttime)as time))
,[percentage] = 100-(datediff(second, 0, cast((endtime - starttime)as float))/86400.0)*100
FROM [availability_outages].[dbo].[pnet02_view]
答案 0 :(得分:1)
SELECT [server]
,[outage]
,[starttime]
,[endtime]
,[outage_seconds] = datediff(second, 0, cast((endime - starttime)as time))
,case when [outage] = 0
then 100
else 100-(datediff(second, 0, cast((endtime - starttime)as float))/86400.0)*100
end as percentage
FROM [availability_outages].[dbo].[pnet02_view]