Страница 1 из 1

Проценты в кросс-табе

Добавлено: 06 мар 2009, 05:51
Igor M. Sharafutdinov
Есть вот такой отчёт с кросстабом.
Изображение
Но есть две проблемы:
1) надо добавить третью колонку - % всех звонков, приходящийся на конкретного абонета, не знаю как.
2) в БД время хранится в секундах, пробовал делать вычисляемую колонку типа timespan, которой присваивал значение "TimeSerial(0,0,Calls.ConnectionTime)" (где ConnectionTime - время в секундах, тип int) , но в кросстабе из неё почему-то ничего не выводится.
Что можете посоветовать?
Спасибо.

Проценты в кросс-табе

Добавлено: 10 мар 2009, 07:41
Igor M. Sharafutdinov
UP:dumb:

Проценты в кросс-табе

Добавлено: 10 мар 2009, 07:45
Edward
Здравствуйте.

К сожалению, в текущей версии генератора отчетов это невозможно. Мы сможем заняться усовершенствованием работы кросс-таблицы только после выхода официального релиза 2009.1 в начале апреля.

Спасибо.

Проценты в кросс-табе

Добавлено: 10 мар 2009, 08:09
Igor M. Sharafutdinov
Хорошо, но можно хотя бы, используя группировку, посчитать процент для каждой группы? К примеру, отношение числа звонков на каждый из номеров к сумме звонков на все номера * 100%? Без кросс-табов, я имею ввиду.

Проценты в кросс-табе

Добавлено: 10 мар 2009, 08:22
ppvlad
извините, что встреваю, вопрос был именно про "кросс", но может быть конкретно для этого отчёта кросс не так уж и нужен?
это я к тому, что может тупо выбрать, например, хранимой процедурой, данные сразу в нужном виде и свести всё к тривиальному случаю?

Проценты в кросс-табе

Добавлено: 10 мар 2009, 08:26
Edward
Здравствуйте.

Да, такое возможно. Вам понадобится для этого 'источник данных на основе других данных'. Этот источник поможет сгруппировать данные и посчитать агрегатную функцию. Далее устанавливаете у объекта отчета свойство CacheAllData в true и создаете связь master-detail с основным источником данных.

Также есть вариант добавить вычисляемую колонку сразу с расчетом Вашей функции, но это будет работать гораздо медленнее.
Условие в этой колонке будет выглядеть следующим образом:

Код: Выделить всё

MyDataSource.MyDataColumn1/Totals.Sum(MyDataSource,(MyDataSource.MyDataColumn2==условиеГруппировки)?MyDataColumn1:0)
Спасибо.

Проценты в кросс-табе

Добавлено: 10 мар 2009, 09:06
Igor M. Sharafutdinov
Спасибо!
А примера нет? :blush:

Проценты в кросс-табе

Добавлено: 16 мар 2009, 08:14
Edward
Здравствуйте,

Нет, к сожалению примера нет.

Спасибо.