В построителе отчетов 2.0 я пытаюсь создать таблицу с данными, подобными приведенным ниже:
Person | StrID's
-------------------
Jim | a, b, c, d
Mary | h, k
Sue | l, m, p, z
Проблема в том, что мой запрос Oracle SQL возвращает данные в следующем формате:
Person | StrID
--------------
Jim | a
Jim | b
Jim | c
Jim | d
Mary | h
И так далее. У меня нет доступа в Oracle для использования LISTAGG
, как описано в этого учебного пособия , и я не могу использовать EXPLAIN PLAN
или сказать, какую версию Oracle я использую, потому что мне нужен доступ к базе данных через очень ограниченный интерфейс. Я посмотрел на функции построителя отчетов, например Aggregate
, но не могу найти способ объединить несколько строковых значений вместе с агрегатной функцией. Если я создаю группировку таблицы по Person, я получаю отдельные строки для каждого из StrID. Использование Join(Fields!StrID.Value, ", ")
приводит к тому, что "#Error" отображается в ячейке таблицы, я предполагаю, что Fields!StrID.Value
на самом деле не является многозначным полем, это одно значение на человека.
Может кто-нибудь сказать мне способ показать список связанных StrID по Person в одной строке, либо через SQL или построитель отчетов 2.0 / Visual Basic?
Редактировать: Я могу использовать функцию LAG , если кто-нибудь может придумать креативное решение с использованием этого. Оказывается, я могу использовать PARTITION BY
вместе с функцией LAG
.