def prepare_aggregate( aggregate_spec )
if aggregate_spec.group_by then
attr = @entity.attribute aggregate_spec.group_by
add_select_list(attr, attr.name, true)
else
group_by = nil
end
aggregate_spec.attributes.each do |agg_attr|
attr = @entity.attribute agg_attr[:name]
add_select_list_with_function(attr, agg_attr[:function], agg_attr[:key])
end
@where_clause = sql_for_qualifier aggregate_spec.qualifier
having_clause = nil
aggregate_spec.sort_orderings.each do |order|
add_order order
end
join_expression
tables = table_list @entity
select = nil
sql = assemble_aggregate(aggregate_spec.qualifier,
aggregate_spec.having, aggregate_spec.sort_orderings, select,
@list_string, tables, join_clause,
where_clause, group_by_string, having_clause, order_by_string)
@statement = sql
end