每個人 - 我可以使用你的幫助。SQL案例平均公式輸出問題
我有一個SQL,我正在檢查一列,看看是否有金額。如果不是,我希望它輸出NULL。如果是這樣,我希望它計算一個平均值。我正在使用這個case語句,並且NULL語句工作正常,但是我的平均語句只是吐出1或0.我一直在搜索和測試幾個小時,但沒有運氣。
CASE
WHEN SUM(z.[SumTarget$]) = 0 THEN NULL
ELSE (1-(SUM(z.[SumBackorder])+SUM(z.[SumStockedOut]))/SUM(z.[CountofNo]))
END [SumAvPerc]
我已經被註釋掉線3,用這個代替,以確保數字是正確的進入公式,到目前爲止,一切正常檢查字符串中的每個字段。
--ELSE SUM(z.[SumStockedOut])
以下是字段和輸出的示例。 **我無法發佈圖片,因爲我需要更多的聲望值:(**
您可以添加一個鏈接到圖片,有人可以將其添加爲你(但文字會更好)我猜一個數據類型(。所有?)的列是一個整數或一些描述,並且您正在使用對整數執行整數除法的RDBMS,例如SQL Server ......但是我只是猜測。你的數據類型是什麼?你使用的是什麼RDBMS?你能提供一個能證明你的問題的最小例子嗎? – Ben 2015-02-05 21:11:08
是整數數學與十進制數學的問題。如果值是整數,則結果將被舍入。如果這些值是小數點開始,他們不會。例如:3/2 = 2而3/2.0 = 1.5我相信這與系統如何解釋返回列的數據類型有關。由於所涉及的所有值都是整數,因此它假定整數返回(不是十進制) – xQbert 2015-02-05 21:11:45