powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Возможно ли построение отчета в Reporting Services
14 сообщений из 14, страница 1 из 1
Возможно ли построение отчета в Reporting Services
    #36303014
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С помощью запроса получаем данные вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
OriginalName	        Stolbzi	Stroki	Sum	Period
Балашихинское Райпо	 1 	 100 	 11640 	 200512 
Балашихинское Райпо	 2 	 100 	 2495 	 200512 
Балашихинское Райпо	 1 	 10 	 4956 	 200612 
Балашихинское Райпо	 2 	 10 	 0 	 200612 
Балашихинское Райпо	 1 	 80 	 2653 	 200612 
Балашихинское Райпо	 2 	 80 	 0 	 200612 
Балашихинское Райпо	 1 	 100 	 20213 	 200612 
Балашихинское Райпо	 2 	 100 	 0 	 200612 
Волоколамское Райпо	 1 	 100 	 23453 	 200512 
Волоколамское Райпо	 2 	 100 	 4532 	 200512 
Волоколамское Райпо	 1 	 10 	 5634 	 200612 
Волоколамское Райпо	 2 	 10 	 0 	 200612 
Волоколамское Райпо	 1 	 80 	 3426 	 200612 
Волоколамское Райпо	 2 	 80 	 0 	 200612 
Волоколамское Райпо	 1 	 100 	 56834 	 200612 
Волоколамское Райпо	 2 	 100 	 0 	 200612 
Воскресенское Райпо	 1 	 100 	 576567 	 200512 
Воскресенское Райпо	 2 	 100 	 6767 	 200512 
Воскресенское Райпо	 1 	 10 	 0 	 200612 
Воскресенское Райпо	 2 	 10 	 567567 	 200612 
Воскресенское Райпо	 1 	 80 	 768 	 200612 
Воскресенское Райпо	 2 	 80 	 0 	 200612 
Воскресенское Райпо	 1 	 100 	 457645 	 200612 
Воскресенское Райпо	 2 	 100 	 76 	 200612 
Дмитровское Райпо	 1 	 100 	 56745 	 200512 
Дмитровское Райпо	 2 	 100 	 788 	 200512 
Дмитровское Райпо	 1 	 10 	 0 	 200612 
Дмитровское Райпо	 2 	 10 	 5678 	 200612 
Дмитровское Райпо	 1 	 80 	 0 	 200612 
Дмитровское Райпо	 2 	 80 	 457645 	 200612 
Дмитровское Райпо	 1 	 100 	 0 	 200612 
Дмитровское Райпо	 2 	 100 	 0 	 200612 

В Reporting Services с помощью матрицы можно получить отчет вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
			                1 				 2 	
	               200512 		 200612 		 200512 		 200612 	
	                100 	 10 	 80 	 100 	 100 	 10 	 80 	 100 
Балашихинское Райпо								
Волоколамское Райпо								
Воскресенское Райпо								
Дмитровское Райпо								

А возможно построить отчет вида:
HАИМЕHОВАHИЕ 200512 г 200612 г ВСЕГО

Где столбеце HАИМЕHОВАHИЕ - перечисление организаций (OriginalName)
столбец 200512 - Взять число Sum-100 Stroki и 1 Stolbzi и 200512 Period отнять Sum-100 Stroki и 2 Stolbzi и 200512 Period

столбец 200912 - Взять число Sum-100 Stroki и 1 Stolbzi и 200612 Period отнять Sum-100 Stroki и 2 Stolbzi и 200612 Period

столбец ВСЕГО - Взять число (Sum -10 строка Stroki и 1 Stolbzi и 200612 Period отнять Sum -10 Stroki и2 Stolbzi и 200612 Period ) СЛОЖИТЬ (Sum-80 Stroki и 1 Stolbzi и 200612 Period отнять Sum-80 Stroki и 2 Stolbzi и 200612 Period )

Буду благодарен за любую подсказку, а то уже голову сломал...
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36303044
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Demonoid75,

Нужный результат оформите в нормальном виде. А то я что так и не поянл, что эе нужно в итоге. Пример можно исходя из данных ваших же?
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36303082
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Построить отчет вида (первая строчка):
Код: plaintext
1.
2.
HАИМЕHОВАHИЕ	             200512  г	 200612  г	    ВСЕГО
Балашихинское Райпо	 11640 - 2495 	 20213 - 0 	     ( 4956 - 0 )+( 2653 - 0 )
Данные берутся из первой таблицы.
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36303275
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
периодов всегда 2 будет?


Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36303442
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buven,

Да периода всегда будет два.
Один задается в запросе (например: 200612) и СООТВ.ПРОШЛОГО ГОДА (например: 200512)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36303834
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда получается что названия столбцов - это ваши параметры. Нужно править запрос в датасорсе.
Прошу его в студию.

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36304049
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buven,

Запрос:
SELECT OrgSpr.OriginalName, F33.PeriodType AS Stolbzi, F33.FiscalActivities AS Stroki, F33.Sum, mVersion.Period
FROM F33 INNER JOIN
mVersion ON F33.VersionID = mVersion.VersionID INNER JOIN
OrgSpr ON mVersion.Period = OrgSpr.Period AND mVersion.BusinessProcessID = OrgSpr.BusinessProcessID
WHERE (mVersion.Period = @fPeriod) AND (F33.FiscalActivities IN ('0010', '0080', '0100')) OR
(mVersion.Period = @fPeriod - 100) AND (F33.FiscalActivities = 0100) AND (F33.PeriodType IN ('01', '02'))
ORDER BY OrgSpr.OriginalName, mVersion.Period, Stroki

Я уже задавал вопрос как переделать сам запрос
http://www.sql.ru/forum/actualthread.aspx?tid=710500
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36304713
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А суммирование идет по строкам? или только 2 занчения нужно брать?
как будет выглядет результат, если выборка вернет
Код: plaintext
1.
2.
3.
Волоколамское Райпо	 1 	 100 	 56834 	 200612 
Волоколамское Райпо	 2 	 100 	 0 	 200612 
Воскресенское Райпо	 1 	 100 	 576567 	 200512 
Воскресенское Райпо	 2 	 100 	 6767 	 200512 

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36304788
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще первое что в голову пришло, правда некрасиво...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
with tbl as (
SELECT OrgSpr.OriginalName as Name, F33.PeriodType AS Stolbzi, F33.FiscalActivities AS Stroki, 
case when F33.PeriodType= 2  then -F33.Sum
else
F33.Sum
end as Totalsum, 
mVersion.Period as period
FROM F33 INNER JOIN
mVersion ON F33.VersionID = mVersion.VersionID INNER JOIN
OrgSpr ON mVersion.Period = OrgSpr.Period AND mVersion.BusinessProcessID = OrgSpr.BusinessProcessID
WHERE (mVersion.Period = @fPeriod) AND (F33.FiscalActivities IN ('0010', '0080', '0100')) OR
(mVersion.Period = @fPeriod -  100 ) AND (F33.FiscalActivities =  0100 ) AND (F33.PeriodType IN ('01', '02'))
ORDER BY OrgSpr.OriginalName, mVersion.Period, Stroki
)

select t1.name,t1.S as period,t2.S as previous,t2.S as ВСего from 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 100 
         group by period,name,stroki) t1
full join 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 80 
         group by period,name,stroki) t2
on t1.name=t2.name  t1.period=t2.period
full join 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 10 
         group by period,name,stroki) t3
on t2.name=t3.name and t2.period=t3.period

ЗА код не отвечаю и не факт что нужен именно full вместо inner но думаю идею показал.

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36304794
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buven,

Вычисления должны идти по формулам
:
Где столбеце HАИМЕHОВАHИЕ - перечисление организаций (OriginalName)

столбец 200512 - Взять (Sum-100 Stroki и 1 Stolbzi и 200512 Period) отнять (Sum-100 Stroki и 2 Stolbzi и 200512 Period)

столбец 200612 - Взять ( Sum-100 Stroki и 1 Stolbzi и 200612 Period) отнять (Sum-100 Stroki и 2 Stolbzi и 200612 Period)

столбец ВСЕГО - Взять (((Sum -10 строка Stroki и 1 Stolbzi и 200612 Period) отнять (Sum -10 Stroki и2 Stolbzi и 200612 Period )) СЛОЖИТЬ ((Sum-80 Stroki и 1 Stolbzi и 200612 Period) отнять (Sum-80 Stroki и 2 Stolbzi и 200612 Period )))
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36304856
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select t1.name,t1.S as period,t2.S as previous,t3.S-t2.s as ВСего from 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 100 
         group by period,name,stroki) t1
full join 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 80 
         group by period,name,stroki) t2
on t1.name=t2.name  t1.period=t2.period
full join 
(select Name,sum(totalsum) as S,stroki,period from tbl
         where stroki= 10 
         group by period,name,stroki) t3
on t2.name=t3.name and t2.period=t3.period


Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36305834
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buven,

Большое спасибо за помощь, но к сожалению вываливается ошибка



Если убрать
ORDER BY OrgSpr.OriginalName, mVersion.Period, Stroki
то остаются ошибки по t1 и t3
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36305854
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорил, это не готовый скрипт, а всего лишь идея реализации. Причем не самая удачная. Тем более что сервера под рукой у меня нет, проверить.

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Возможно ли построение отчета в Reporting Services
    #36312018
Demonoid75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buven,

У меня получилось написать запрос такого вида.
Но возможно кто подскажет как написать его по другому был бы благодарен.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
SELECT     t1.OriginalName AS N1, t1.Sum - t2.Sum AS S1, t3.Sum - t4.Sum AS S2, (t5.Sum - t6.Sum) + (t7.Sum - t8.Sum) AS S3
FROM         (SELECT     OrgSpr.OriginalName, F33.Sum
                       FROM          F33 INNER JOIN
                                              mVersion ON F33.VersionID = mVersion.VersionID INNER JOIN
                                              OrgSpr ON mVersion.Period = OrgSpr.Period AND mVersion.BusinessProcessID = OrgSpr.BusinessProcessID
                       WHERE      (mVersion.Period = @fPeriod -  100 ) AND (F33.FiscalActivities =  0100 ) AND (F33.PeriodType =  01 )) AS t1 FULL OUTER JOIN
                          (SELECT     OrgSpr_1.OriginalName, F33_1.Sum
                            FROM          F33 AS F33_1 INNER JOIN
                                                   mVersion AS mVersion_1 ON F33_1.VersionID = mVersion_1.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_1 ON mVersion_1.Period = OrgSpr_1.Period AND 
                                                   mVersion_1.BusinessProcessID = OrgSpr_1.BusinessProcessID
                            WHERE      (mVersion_1.Period = @fPeriod -  100 ) AND (F33_1.FiscalActivities =  0100 ) AND (F33_1.PeriodType =  02 )) AS t2 ON 
                      t1.OriginalName = t2.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_2.OriginalName, F33_2.Sum
                            FROM          F33 AS F33_2 INNER JOIN
                                                   mVersion AS mVersion_2 ON F33_2.VersionID = mVersion_2.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_2 ON mVersion_2.Period = OrgSpr_2.Period AND 
                                                   mVersion_2.BusinessProcessID = OrgSpr_2.BusinessProcessID
                            WHERE      (mVersion_2.Period = @fPeriod) AND (F33_2.FiscalActivities =  0100 ) AND (F33_2.PeriodType =  01 )) AS t3 ON 
                      t2.OriginalName = t3.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_3.OriginalName, F33_3.Sum
                            FROM          F33 AS F33_3 INNER JOIN
                                                   mVersion AS mVersion_3 ON F33_3.VersionID = mVersion_3.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_3 ON mVersion_3.Period = OrgSpr_3.Period AND 
                                                   mVersion_3.BusinessProcessID = OrgSpr_3.BusinessProcessID
                            WHERE      (mVersion_3.Period = @fPeriod) AND (F33_3.FiscalActivities =  0100 ) AND (F33_3.PeriodType =  02 )) AS t4 ON 
                      t3.OriginalName = t4.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_4.OriginalName, F33_4.Sum
                            FROM          F33 AS F33_4 INNER JOIN
                                                   mVersion AS mVersion_4 ON F33_4.VersionID = mVersion_4.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_4 ON mVersion_4.Period = OrgSpr_4.Period AND 
                                                   mVersion_4.BusinessProcessID = OrgSpr_4.BusinessProcessID
                            WHERE      (mVersion_4.Period = @fPeriod) AND (F33_4.FiscalActivities =  010 ) AND (F33_4.PeriodType =  01 )) AS t5 ON 
                      t4.OriginalName = t5.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_5.OriginalName, F33_5.Sum
                            FROM          F33 AS F33_5 INNER JOIN
                                                   mVersion AS mVersion_5 ON F33_5.VersionID = mVersion_5.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_5 ON mVersion_5.Period = OrgSpr_5.Period AND 
                                                   mVersion_5.BusinessProcessID = OrgSpr_5.BusinessProcessID
                            WHERE      (mVersion_5.Period = @fPeriod) AND (F33_5.FiscalActivities =  010 ) AND (F33_5.PeriodType =  02 )) AS t6 ON 
                      t5.OriginalName = t6.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_6.OriginalName, F33_6.Sum
                            FROM          F33 AS F33_6 INNER JOIN
                                                   mVersion AS mVersion_6 ON F33_6.VersionID = mVersion_6.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_6 ON mVersion_6.Period = OrgSpr_6.Period AND 
                                                   mVersion_6.BusinessProcessID = OrgSpr_6.BusinessProcessID
                            WHERE      (mVersion_6.Period = @fPeriod) AND (F33_6.FiscalActivities =  080 ) AND (F33_6.PeriodType =  01 )) AS t7 ON 
                      t6.OriginalName = t7.OriginalName FULL OUTER JOIN
                          (SELECT     OrgSpr_7.OriginalName, F33_7.Sum
                            FROM          F33 AS F33_7 INNER JOIN
                                                   mVersion AS mVersion_7 ON F33_7.VersionID = mVersion_7.VersionID INNER JOIN
                                                   OrgSpr AS OrgSpr_7 ON mVersion_7.Period = OrgSpr_7.Period AND 
                                                   mVersion_7.BusinessProcessID = OrgSpr_7.BusinessProcessID
                            WHERE      (mVersion_7.Period = @fPeriod) AND (F33_7.FiscalActivities =  080 ) AND (F33_7.PeriodType =  01 )) AS t8 ON 
                      t7.OriginalName = t8.OriginalName
WHERE     (NOT (t1.OriginalName IS NULL))
ORDER BY N1

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


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