Есть два варианта:
- В Oracle 11.2 наконец-то появилась агрегатная функция для строк -- listagg. Можно воспользоваться ею, но тогда после редактирования придется перечитывать или весь запрос в гриде целиком, или только одну строку, если ODAC это позволяет. На память не помню.
- Другой способ -- держать отдельные запросы, читающие исходные данные для агрегации целиком, а саму агрегацию делать на клиенте в полях с FieldKind = fkInternalCalc (вычисляемые поля с буферизацией значений).
Редактирование в обоих случаях придется делать как-то отдельно, поскольку для грида требуется агрегация всех доступных связанных значений, а для редактирования -- только для одной записи. В ODAC, в принципе, можно выкрутиться с AddWhere, чтобы не дублировать компоненты запросов агрегируемых значений.