|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
Прошу помощи, второй день сижу в Гугле Есть таблица: Счет, Отделение, Менеджер, СтатусКредита, Месяц Нужно создать отчет, где показывается доля кредитов со статусом 1 в каждом месяце в разрезе отделение-менеджер. Плюс показать темп прироста в сравнении с предыдущим месяцем. То есть Отделение, Менеджер, Всего кредитов, КредитовСтатус1, КредитовСтатус1/Всего кредитов, (КредитовСтатус1/Всего кредитов(в августе)- КредитовСтатус1/Всего кредитов(в июле))/ КредитовСтатус1/Всего кредитов(в июле) На каждый месяц отдельный рапорт. Проблема в темпе прироста - нужны данные предыдущего месяца. Пробовал реализовать через два датасета с параметрами по месяцу, но выражение =count(lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2")) не работает – выдает одинаковое количество. Вопроса два – каким способом лучше решить задачу, и как правильно соединить два датасета, чтобы формула выше работала ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 16:40 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
westsiderlviv, время позднее и я могу где-то ошибаться, но скорее всего не ошибаюсь :) IMHO -два dataset-а ни к чему достаточно одного применяете тот же подход, что и в Вашей предыдущей теме - аккумулят с IF внутри в dataset должны быть данные по обоим месяцам очевидно, раз данные в разрезе ОТДЕЛЕНИЕ, МЕНЕДЖЕР - у вас группировка по этим полям следовательно в Итогах по этой группе COUNT(FIelds!Month.Value) - кол-во кредитов всего =Count(IIF(Fields!Month.Value=7, Fields!Month.Value, 0)) - кол-во кредитов за июль =Count(IIF(Fields!Month.Value=8, Fields!Month.Value, 0)) - кол-во кредитов за август westsiderlviv=count(lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2")) не работает – выдает одинаковое количество. выражение написано неправильно - lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2") находит значение Fields!Moniker.Value bp dataset 2 - обозначим его через P подставим в Ваше выражение ( все это делаем, чтобы визуально упростить выражение) получим COUNT(P) Но поскольку (очевидно) это выражение стоит в таблице, которая связана с dataset1 - ТО COUNT идет по dataset1! ну допустим Вы напишете так - COUNT(P, "Dataset2") тогда вы получите TOTAL count ( по всем отделениям и менеджерам) в dataset2 Ну и последнее - я бы не стала писать так lookup потому что вообще-то для пар значений "AA" (отделение) + "BB"(менеджер) и "A" (отделение) + "ABB" (менеджер) мы получим НЕИЗВЕСТНО ЧТО потому что lookup работает так Lookup does the following: Evaluates the source expression in the current scope. Evaluates the destination expression for each row of the specified dataset after filters have been applied, based on the collation of the specified dataset. On the first match of source expression and destination expression , evaluates the result expression for that row in the dataset. Returns the result expression value. ( http://technet.microsoft.com/en-us/library/ee210531.aspx) и преназначена, конечно, для работы по ID ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 00:07 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
Спасибо за ответ! По lookup - насколько понял, это всего лишь аналог ВПР в Excel`е? По задаче - мне нужно делать такой рапорт по каждому месяцу с начала года ежемесячно. То есть нужно или 8 рапортов, или 8 раз менять Expression в матрице, или 8 матриц в одном рапорте. Хотя, если возможно использовать параметры в выражениях, будет проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 10:42 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
westsiderlviv, авторПо lookup - насколько понял, это всего лишь аналог ВПР в Excel`е? Похоже авторХотя, если возможно использовать параметры в выражениях, будет проще. Нет никакого сомнения - надо использовать параметры И еще если есть возможность - надо все делать в серверной процедуре - если есть доступ к серверу и возможность создавать и редактировать ХП Если Вам не нужно показывать детали по каждому кредиту - и группировка по отделу/менеджеру является статической, почему бы все данные не посчитать в ХП??? Гораздо быстрее будет ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 11:04 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
авторпочему бы все данные не посчитать в ХП??? то есть без Reporting Services? можно, но зачем тогда SS RS? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 11:32 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
westsiderlviv, чтобы показать/экспортировать, что там посчиталось :) А еще есть случаи, когда группировка динамическая - т.е. Вы не знаете по какому полю пользователь будет группировать (через парамаетр задается) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 11:40 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
Andrews25, понятно. скорость у меня сейчас не на первом месте, хочу освоить функционал SS RS :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 11:54 |
|
использование двух датасетов в матрице, Reporting Services
|
|||
---|---|---|---|
#18+
изменил запрос, теперь все коєффициенты рассчитываются до попадания в SSRS но, матрица не видит значения, следующее выражение возвращает нули =IIF(Fields!firstschedulemonth.Value=Parameters!month.value and Fields!SUMQUAN.Value="Quantity" and Fields!Indicator.Value="All", Fields!Value.Value,0) Приходится использовать агрегатор =Sum(IIF(Fields!firstschedulemonth.Value=Parameters!month.value and Fields!SUMQUAN.Value="Quantity" and Fields!Indicator.Value="All", CInt(Fields!Value.Value),0)) Так все нормально, но, понятное дело, используется больше ресурсов. Кто-нибудь знает, в чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2013, 18:20 |
|
|
start [/forum/topic.php?fid=31&msg=38382029&tid=1533966]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 127ms |
0 / 0 |