1

我有一个查询,我使用 COUNT 来计算供应商的销售额。我需要获得该供应商一个月内的平均销售额。这只是 COUNT 除以天数。问题是 COUNT 返回一个 int,如果我将它除以一个更大的数字,它只会返回零。所以,我想用这个:

CAST(COUNT(sales) as FLOAT)/X

其中 X 是天数。问题是我不能在命名查询上使用 CAST。有没有其他方法可以做到这一点,所以我不必使用 CAST?

4

1 回答 1

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
于 2013-07-02T06:48:51.263 回答