簡體   English   中英

百分比變化返回錯誤結果

[英]Percent change returns wrong result

我在這里待了大約2個小時。 我正在嘗試計算兩個金額之間的百分比變化。 這是當前代碼。

RejectedVsSubmittedSum = ((CASE WHEN COUNT(ClaimMain.ClaimNumber) > 0 THEN SUM(PCover.SumAssured) END
                                 -ISNULL(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0))
                                 /NULLIF(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0))
                                 * 100

該行返回225000。

CASE WHEN COUNT(ClaimMain.ClaimNumber) > 0 THEN SUM(PCover.SumAssured) END

該行返回25000。

ISNULL(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0)

該師。

NULLIF(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0)

然后我乘以100。

因此225000-25000/25000 * 100返回800 這是我要返回的內容,但是基於此站點http://www.percent-change.com/index.php?y1=225000&y2=25000 ,我的結果是錯誤的,我應該返回-88.88888888%。

我沒有用SQL進行這些計算的任何實際經驗,因此我認為網站是正確的。 有人可以看看我是否真的在做錯什么嗎?

我已經問過“ 計算兩個值之間的百分比” ,但是現在我使用的是一組不同的數字,我現在使用的是金額而不是計數。 我嘗試使用相同的邏輯(因為這樣做很有意義),但似乎我返回了錯誤的結果。

根據((y2 - y1) / y1)*100的公式,您的查詢應如下所示。

RejectedVsSubmittedSum = ( ( (ISNULL(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0) ) 
    - (CASE WHEN COUNT(ClaimMain.ClaimNumber) > 0 THEN SUM(PCover.SumAssured) END) ) 
          / (CASE WHEN COUNT(ClaimMain.ClaimNumber) > 0 THEN SUM(PCover.SumAssured) END) ) * 100


y1: CASE WHEN COUNT(ClaimMain.ClaimNumber) > 0 THEN SUM(PCover.SumAssured) END
y2: ISNULL(SUM(CASE ClaimMain.CurrentStatus WHEN 25 THEN PCover.SumAssured END),0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM