Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS 2012 дважды обойти вложенную группировку / 7 сообщений из 7, страница 1 из 1
17.03.2015, 12:22
    #38906900
Pvase
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
Есть запрос, который возвращает такой результат:
Предприятие Поставщик Валюта СуммаПредприятие 1 Иванов Доллар 1000 Иванов Евро 300 Петров Евро 500Предприятие 2 Иванов Евро 1500 Петров Доллар 1200 Петров Евро 700
Надо получить в конце каждого предприятия еще и итоги по всем валютам встречающихся по поставщикам. Т.е. должно быть так:

Предприятие Поставщик Валюта СуммаПредприятие 1 Иванов Доллар 1000 Иванов Евро 300 Петров Евро 500 Итого Доллар 1000 Итого Евро 800Предприятие 2 Иванов Евро 1500 Петров Доллар 1200 Петров Евро 700 Итого Доллар 1200 Итого Евро 2700
Как можно это сделать? Спасибо.
...
Рейтинг: 0 / 0
17.03.2015, 13:26
    #38907020
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
Pvase,

возможно в 2012 версии что-то появилось, не знаю...   Но проще всего решить на стороне сервера, например так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @t table (org varchar(500), prov varchar(500), cur varchar(20), summa int)
insert @t
  select 'Сезон 1', 'Малкольм Мерлин', 'Доллар', 1000 union all
  select 'Сезон 1', 'Малкольм Мерлин', 'Евро', 300 union all
  select 'Сезон 1', 'Слейд Уилсон', 'Евро', 500 union all
  select 'Сезон 2', 'Малкольм Мерлин', 'Евро', 1500 union all
  select 'Сезон 2', 'Слейд Уилсон', 'Доллар', 1200 union all
  select 'Сезон 2', 'Слейд Уилсон', 'Евро', 700

select org, isnull(prov,'Итого:'), cur, sum(summa) [summa]
--, grouping(org) [grOrg], grouping(prov) [grProv], grouping(cur) [grCur]
from @t
group by cube(org, prov, cur)
having grouping(org) = 0 and grouping(cur) = 0
order by org, grouping(prov)
...
Рейтинг: 0 / 0
17.03.2015, 13:41
    #38907056
Pvase
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
user89,
Спасибо большое, но у меня источником является OLAP куб и строится MDX запрос.
...
Рейтинг: 0 / 0
17.03.2015, 14:31
    #38907157
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
Pvase,

уверен, есть способы в MDX, которые строят группировки, аналогично моему примеру выше.
Или возможно залить результат запроса MDX во временную таблицу на SQL-сервер и там сделать group by cube

Прилагаю проект, но такой вариант работает, если известно количество разных валют.
...
Рейтинг: 0 / 0
18.03.2015, 10:39
    #38907963
Pvase
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
user89Pvase,

уверен, есть способы в MDX, которые строят группировки, аналогично моему примеру выше.
Или возможно залить результат запроса MDX во временную таблицу на SQL-сервер и там сделать group by cube

Прилагаю проект, но такой вариант работает, если известно количество разных валют.
Спасибо большое посмотрел.
Нашел выход в расположении на форме списка, а в списке уже 2 таблиц с разными группировками. В списке группировка по фирме, в 1-й таблице группировка: Поставщик/Валюта, во 2-1 таблице - только валюта.
...
Рейтинг: 0 / 0
21.03.2015, 19:55
    #38912084
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
Pvase,
я бы не городил огорода со списком и таблицами, а вывел одну таблицу с группировками "Предприятие"-"Поставщик"-"Валюта", а в футере группировки "Предприятие" вывел две строки в одной SUM(IIF(Валюта=Доллар, Сумма, NULL)) (синтаксис условный), а в другой аналогично для евро.
...
Рейтинг: 0 / 0
21.04.2015, 23:23
    #38942045
DanielMyts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS 2012 дважды обойти вложенную группировку
Мне кажется, что лучше использовать возможности MDX-запросов.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
    [Measures].[Сумма] on 0,
    non empty (
        [Предприятие].[Предприятие].children,
        [Поставщик].[Поставщик].members,
        [Валюта].[Валюта].children
    ) on 1

from [Куб]



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


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