Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / использование двух датасетов в матрице, Reporting Services / 9 сообщений из 9, страница 1 из 1
29.08.2013, 16:40
    #38381396
westsiderlviv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
Прошу помощи, второй день сижу в Гугле

Есть таблица:
Счет, Отделение, Менеджер, СтатусКредита, Месяц
Нужно создать отчет, где показывается доля кредитов со статусом 1 в каждом месяце в разрезе отделение-менеджер. Плюс показать темп прироста в сравнении с предыдущим месяцем.
То есть
Отделение, Менеджер, Всего кредитов, КредитовСтатус1, КредитовСтатус1/Всего кредитов, (КредитовСтатус1/Всего кредитов(в августе)- КредитовСтатус1/Всего кредитов(в июле))/ КредитовСтатус1/Всего кредитов(в июле)
На каждый месяц отдельный рапорт.
Проблема в темпе прироста - нужны данные предыдущего месяца. Пробовал реализовать через два датасета с параметрами по месяцу, но выражение

=count(lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2"))

не работает – выдает одинаковое количество.

Вопроса два – каким способом лучше решить задачу, и как правильно соединить два датасета, чтобы формула выше работала
...
Рейтинг: 0 / 0
30.08.2013, 00:07
    #38381817
Andrews25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
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
...
Рейтинг: 0 / 0
30.08.2013, 10:42
    #38382029
westsiderlviv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
Спасибо за ответ!

По lookup - насколько понял, это всего лишь аналог ВПР в Excel`е?

По задаче - мне нужно делать такой рапорт по каждому месяцу с начала года ежемесячно. То есть нужно или 8 рапортов, или 8 раз менять Expression в матрице, или 8 матриц в одном рапорте.
Хотя, если возможно использовать параметры в выражениях, будет проще.
...
Рейтинг: 0 / 0
30.08.2013, 11:04
    #38382068
Andrews25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
westsiderlviv,

авторПо lookup - насколько понял, это всего лишь аналог ВПР в Excel`е?
Похоже

авторХотя, если возможно использовать параметры в выражениях, будет проще.

Нет никакого сомнения - надо использовать параметры

И еще
если есть возможность - надо все делать в серверной процедуре - если есть доступ к серверу и возможность создавать и редактировать ХП
Если Вам не нужно показывать детали по каждому кредиту - и группировка по отделу/менеджеру является статической,
почему бы все данные не посчитать в ХП???
Гораздо быстрее будет
...
Рейтинг: 0 / 0
30.08.2013, 11:32
    #38382116
westsiderlviv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
авторпочему бы все данные не посчитать в ХП???

то есть без Reporting Services? можно, но зачем тогда SS RS?
...
Рейтинг: 0 / 0
30.08.2013, 11:40
    #38382137
Andrews25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
westsiderlviv,

чтобы показать/экспортировать, что там посчиталось :)

А еще есть случаи, когда группировка динамическая - т.е. Вы не знаете по какому полю пользователь будет группировать (через парамаетр задается)
...
Рейтинг: 0 / 0
30.08.2013, 11:54
    #38382158
westsiderlviv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
Andrews25, понятно.
скорость у меня сейчас не на первом месте, хочу освоить функционал SS RS :)
...
Рейтинг: 0 / 0
02.09.2013, 18:20
    #38384516
westsiderlviv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
изменил запрос, теперь все коєффициенты рассчитываются до попадания в 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))

Так все нормально, но, понятное дело, используется больше ресурсов.


Кто-нибудь знает, в чем дело?
...
Рейтинг: 0 / 0
03.09.2013, 09:21
    #38384938
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование двух датасетов в матрице, Reporting Services
westsiderlviv,

А в ячейках матрицы, вроде, можно только агрегаты.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / использование двух датасетов в матрице, Reporting Services / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]