2017-07-04 54 views
0

我有一個存儲過程,我最初創建一個臨時表。我填寫前3列,然後我想獲得作業無效時的百分比。但我似乎無法獲得很好的價值。如果Void = 10和Total_Jobs = 59,那麼10/59 = 0.16,但它填充零表。我究竟做錯了什麼?sql 2014問題存儲十進制

Create table #tbl_WeeklyJobsRpt 
(
Region_Code varchar(25), 
Void int DEFAULT 0, 
Total_Jobs int DEFAULT 0, 
Void_Pctg decimal(10,2) DEFAULT 0 
) 

-- Void_Pctg 
Update #tbl_WeeklyJobsRpt 
    set Void_Pctg = ((Void)/Total_Jobs) 
Where Void <> 0 
+2

的可能的複製[SQL Server中,師返回零(https://stackoverflow.com/questions/1666407/sql-server-division-returns-zero) –

回答

1

這兩個值都是int,所以結果也是int,並且值被向下舍入。 嘗試1.0*Void/Total_Jobs - 1.0會導致隱式轉換。

+0

我試了一下,並沒有奏效。任何更多的想法。 –

0

@Alex,這是正確的答案,謝謝。 我不得不把我的領域設置爲浮動,然後當我以後分開,這一切工作。我以爲我已經嘗試過,但顯然我錯過了某處的細節。 Answer here: