2016-05-16 124 views
1

我有一個基於另外兩列計算的百分比列。但是,根據另一列中的值,我將能夠更改該計算。SQL - 根據另一列中的值更改計算結果

例如

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] 

回答

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]