2014-04-08 50 views
0

下面您可以看到我在一個大SP中爲我的業務做的一些計算。我會在這裏發佈一行。問題是我無法正確地獲得格式。它應該是這樣的:結果的如何在SP內獲得正確的SQL計算格式

CONVERT(DECIMAL(30, 2), (isa.sales_price * 0.8) * (1 - u.discount)) as PRICE 

實施例:

  • 的isa.sales_price是:149
  • 的u.discount是:24
  • 結果是: - 2741.60

我在做什麼錯?

編輯,這裏是一些幫助後的結果:

CONVERT(DECIMAL(30, 2), (isa.sales_price * 0.8) * (1-(u.rabatt/100))) 
+0

您的示例值與您期望的輸出不匹配,所以出現錯誤。但是 - 什麼數據類型是您的sales_price和您的折扣? –

+0

已編輯。 sales_price是數字,折扣是十進制。如果它是一個更好的選擇,兩者都可以改變。 – Lebowski

回答

1

什麼是錯的 - 我懷疑 - 是該計算是不是你希望它是什麼:

149 * 0.8 *(1 - 24)的確返回-2741.60

你爲什麼期望它能給你別的東西?

如果我冒險猜測,你應該將折扣與100分開,因爲它可能是一個百分比值。但這是一個猜測。

+0

嗯,是的,這是真的,我今天有點關閉。雖然這是一個以24作爲百分比的公式,它將返回90.592,這正是我正在尋找的。由於它只是我的數據庫中的一個數字,它將返回-2741.60值。任何人都知道我可以如何解決這個問題,並修復公式工作? – Lebowski

+0

'SELECT CONVERT(DECIMAL(30,2),(149 * 0.8)*(1 - 24/100.0))'返回90.59 - 正如答案中所述,我懷疑您只需要將折扣分爲100 –

+0

誠然,謝謝:) 'CONVERT(DECIMAL(30,2),(isa.sales_price * 0.8)*(1-(u.rabatt/100)))'這工作! – Lebowski