mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Let caller specify type to use for an aggregate expression
This commit is contained in:
@ -119,14 +119,18 @@ public class RDBMSAggregateAction extends AbstractRDBMSAction implements Aggrega
|
||||
JoinsContext.FieldAndTableNameOrAlias fieldAndTableNameOrAlias = joinsContext.getFieldAndTableNameOrAlias(aggregate.getFieldName());
|
||||
QFieldMetaData field = fieldAndTableNameOrAlias.field();
|
||||
|
||||
if(field.getType().equals(QFieldType.INTEGER) && (aggregate.getOperator().equals(AggregateOperator.AVG) || aggregate.getOperator().equals(AggregateOperator.SUM)))
|
||||
QFieldType fieldType = aggregate.getFieldType();
|
||||
if(fieldType == null)
|
||||
{
|
||||
field = new QFieldMetaData().withType(QFieldType.DECIMAL);
|
||||
if(field.getType().equals(QFieldType.INTEGER) && (aggregate.getOperator().equals(AggregateOperator.AVG)))
|
||||
{
|
||||
fieldType = QFieldType.DECIMAL;
|
||||
}
|
||||
}
|
||||
|
||||
if(aggregate.getOperator().equals(AggregateOperator.COUNT) || aggregate.getOperator().equals(AggregateOperator.COUNT_DISTINCT))
|
||||
if(fieldType != null)
|
||||
{
|
||||
field = new QFieldMetaData().withType(QFieldType.DECIMAL);
|
||||
field = new QFieldMetaData().withType(fieldType);
|
||||
}
|
||||
|
||||
Serializable value = getFieldValueFromResultSet(field, resultSet, selectionIndex++);
|
||||
|
Reference in New Issue
Block a user