2015-07-31 3 views
0

Я использую следующее выражение для определения показателей продаж.Эффективность SSRS IIF

= сумма (IIF (Fields! InitialValue.Value> = +500000 и поля! InitialValue.Value < +1000000, Поля! InitialValue.Value, ничего))

В принципе, я просто изменить больше и меньше, чем значения для каждой ячейки. У нас есть 4 уровня.

Из того, что я понимаю, заявление IIF будет проходить через каждую строку и оценивать его, прежде чем возвращать что-либо. Я также усредняю ​​размер каждой новой учетной записи, поэтому у меня есть 8 ячеек, которые каждый раз оценивают данные. Мне также нужно будет добавить, сколько учетных записей находится на каждом уровне, что означает, что 12 проходов при тех же данных. Для создания отчета требуется некоторое время.

Это самый эффективный метод?

Заранее благодарим за вашу помощь!

ответ

0

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

+0

Первая идея сработала. Я создал новый столбец в SQl, используя оператор Cast/Then, а затем сгруппирован по этому новому столбцу в SSRS. Сокращение времени работы от 1 минуты до менее 2 секунд! Благодаря! –

+0

Исправление, оператор «Случай/Затем». –

Смежные вопросы