2013-02-21 56 views
0

數我有這樣的查詢:怎麼不來一輪SQL

Select Customer,JobType,sum(SThours), 
sum(OThours),SortMonth, 
str((sum(OThours)/sum(SThours)),5,2)AS Ratios 
from #data 
group by Customer,JobType,SortMonth 


Sum (SThours): 688 
sum(OThours): 618 

的比例應該是688分之618= 0.90,但我的結果是1.00

我是新來的SQL,我需要幫助。謝謝。

+0

您正在使用的數據庫? – beny23 2013-02-21 13:58:37

+0

非常感謝,我得到它 – 2013-02-21 14:26:32

回答

1

儘量鑄造數量爲十進制

SELECT 
    Customer, 
    JobType, 
    sum(SThours), 
    sum(OThours), 
    SortMonth, 
    str((CAST(sum(OThours) AS DECIMAL)/sum(SThours)),5,2) AS Ratios 
FROM 
    #data 
GROUP BY 
    Customer, JobType, SortMonth 

試試這個樣本fiddle

它是簡單的展示越來越十進制值

3

嘗試將一個或另一側劃分爲一個浮點 - 強制浮點而不是整數除法。

SELECT 
    Customer, 
    JobType, 
    sum(SThours), 
    sum(OThours), 
    SortMonth, 
    str((CAST(sum(OThours) AS FLOAT)/sum(SThours)),5,2) AS Ratios 
FROM 
    #data 
GROUP BY 
    Customer, 
    JobType, 
    SortMonth 
+0

我嘗試的代碼,但我仍然得到相同的結果。我在Crystla報告中使用了sql查詢。 – 2013-02-21 14:09:21

+0

我明白了,當我宣佈比率我設置數字現在我改變爲數字(10,2)。感謝您的幫助。那爲我節省了一天 – 2013-02-21 14:28:55

1

你的問題是你正在執行一個整數除法,它總是會返回一個整數值。 您應該將這些總和轉換爲浮點數字值(小數點應該有效),然後再將它們分開。