我試圖編寫一個查詢,通過將我通過SUM選擇的2個總數除以給出一個百分比(例如.885之類的東西)。但是我的結果是0.0而不是正確的數字。所以僅供參考,從2個查詢,我有:SQL Server:在轉換後得到正確的十進制值時遇到問題
SELECT SUM(CASE WHEN Status_ID = 1 AND State_ID = 14 THEN 1 ELSE 0 END)
FROM SomeTable
其中產量158和:
SELECT SUM(CASE WHEN State_ID = 14 THEN 1 ELSE 0 END)
FROM SomeTable
產量現在203
,如果我只是做這:
SELECT SUM(CASE WHEN Status_ID = 1 AND State_ID = 14 THEN 1 ELSE 0 END)/SUM(CASE WHEN State_ID = 14 THEN 1 ELSE 0 END)
FROM SomeTable
我會得到0,因爲一切都被用作整數。所以我試過這個:
SELECT CAST(SUM(CASE WHEN Status_ID = 1 AND State_ID = 14 THEN 1 ELSE 0 END)/SUM(CASE WHEN State_ID = 14 THEN 1 ELSE 0 END) AS DECIMAL(3,1))
FROM SomeTable
但是我的結果是0.0。這顯然不是我想要的。我想越來越.778
我在想,我需要單獨鑄造數字,但我試過,得到了算術溢出異常。有沒有人看到我可以做什麼不同?
我正在使用SQL Server 2005.非常感謝。
感謝您的回覆。我最終使用了你在最後給出的例子,它工作得很好。但看起來好像第二個SUM(分母)可能爲0的情況。當發生這種情況時,我得到了一個異常,並且我不知道如何處理它。你有什麼想法? – 2010-08-18 19:49:05
更新了我的回覆 – SQLMenace 2010-08-18 20:10:29