2015-12-11 170 views
0

嘗試查找修改項目的百分比並在電子郵件警報中進行設置。在警報中的另一部分比例正常工作,但這個是在SQL Server 2008中計算百分比

select CONVERT(NVARCHAR(10), 150) + ' (' + CONVERT(NVARCHAR(50), CONVERT(DECIMAL(12,2), ((50)/150) * 100)) + '%' + ')' 

它是利用現有的變量,這就是爲什麼它需要轉換,我只是在輸入隨機值我遇到問題的行領域將是。 150個是總項目,50個是修改項目。

回答

3

我不確定爲什麼會出現「隨機」值。我能理解意想不到的結果。

這個表達式:

CONVERT(DECIMAL(12,2), ((50)/150) * 100) 

更簡單地寫爲:

0 

的原因是,SQL Server會整數除法。所以,你需要在分割之前轉換這些值。我經常這樣做乘以1.0:

CONVERT(DECIMAL(12,2), ((50)*1.0/150) * 100) 
+0

這工作。雖然它很奇怪,因爲類似的計算在電子郵件報告中使用較高,但由於某種原因,它不會轉換該值,但它們似乎是正確的。 –