我有這樣的SELECT語句:如何修復SQL輸出到小數點後兩位
SELECT
t.clmUnit,
t.clmConType,
Count(t.clmCaseID) TotalCases,
SUM(CASE WHEN t.clmOutcomeType='Resolved' THEN 1 ELSE 0 END) TotalResolved,
cast(SUM(CASE WHEN t.clmOutcomeType='Resolved' THEN 1 ELSE 0 END) as decimal(18,2))/cast(Count(t.clmCaseID) as decimal(18,2))*100 as [TotalResolved %],
SUM(CASE WHEN t.clmOutcomeType='Unresolved' THEN 1 ELSE 0 END) TotalCaseProgressed,
cast(SUM(CASE WHEN t.clmOutcomeType='Unresolved' THEN 1 ELSE 0 END) as decimal(18,2))/cast(Count(t.clmCaseID)as decimal(18,2))*100 as [TotalCaseProgressed %],
SUM(CASE WHEN t.clmOutcomeType='Work In Progress' THEN 1 ELSE 0 END) TotalFurtherConReq,
cast(SUM(CASE WHEN t.clmOutcomeType='Work In Progress' THEN 1 ELSE 0 END) as decimal(18,2))/cast(Count(t.clmCaseID)as decimal(18,2))*100 as [TotalFurtherConReq %]
足見其輸出列十進制數字(如)62.24837411,我知道我可以把這個到Excel和格式化列作爲百分比,但我的問題是我如何獲得SQL將其轉換爲百分比?我試圖將十進制(18,2)更改爲十進制(4,2),這是我想要的,但它只是拋出數學溢出錯誤?
我認爲你需要這個[鏈接](http://www.w3schools.com/sql/sql_func_round.asp) – Spiderman
儘量不要每個值鑄造'DECIMAL'而是通過'1.0'乘以分子,然後將CAST最終結果轉換爲DECIMAL(5,2) –