2013-06-21 3 views
1

У меня есть запрос, где я использую COUNT для вычисления объема продаж поставщика. Мне нужно иметь средний объем продаж от этого поставщика через месяц. Это всего лишь COUNT, деленное на количество дней. Проблема в том, что COUNT возвращает int, и если я делю его на большее число, он просто возвращает ноль. Так, я думал об использовании этого:Преобразование count в float в HQL

CAST(COUNT(sales) as FLOAT)/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