2013-06-21 69 views
1

我有一個查詢,我使用COUNT來計算供應商的銷售額。我需要在一個月內獲得該供應商的平均銷售額。這僅僅是COUNT除以天數。 問題是COUNT返回一個int值,如果我將它除以更大的數字,它只會返回零。 所以,我想過用這樣的:在HQL中將浮點數轉換爲浮點型

CAST(COUNT(sales) as FLOAT)/X 

其中X是天數。 問題是我無法在命名查詢上使用CAST。還有其他的方式嗎,所以我不需要使用CAST?

回答

0

如果您正在使用createSQLQuery()方法時,它會自動轉換結果存入一個十進制數沒有任何鑄造/轉換。

List l1 = ss.createSQLQuery("SELECT 1/100 FROM DUAL").list(); //0.0100 

但如果是的createQuery()方法,你可以通過轉換成big_decimal

List l2 = ss.createQuery("SELECT cast(1/100 as big_decimal),yourMappedColumn FROM yourMappedTable").list(); //0.01 
將其轉換