select convert(varchar,Convert(decimal(18,2),
(CAST( sum(case when prcomplete>0 then 1 else 0 end)as float)
/count(a.user_id)) )
)
as rate
from zssl_patrolrecord a
ps:簡單說一下
1、最外邊用convert轉化是因爲 sql查 出來 如果是0.x,0會丟失
2、第二個convert是保留小數點後兩位
3、cast是把查出來的int轉爲浮點型,因爲int相除會默認去掉小數點後數據