powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / MS Reporting Services 2005. Сумма повторяющихся значений в группе
7 сообщений из 7, страница 1 из 1
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #36524728
nicht_shiessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!

Предположим, есть такие данные

Уровень параметр1 параметр2group1 13 group21 5 Item1 4 1Item1 4 2Item1 4 3Item2 1 4Item2 1 5group22 8 Item3 1 6Item3 1 7Item4 7 8Item4 7 9

Т.е. параметр1 у итема(i) всегда одинаков.

Можно ли каким-то гуманным образом получить в поле "параметр1" у групп сумму не по всем значениям этого поля из детализации, а по "уникальным", т.е. если я сейчас напишу к примеру в группе 21 Sum(Field!Item) он мне честно выдаёт 12. А нужно именно 4.

Пока ничего умнее не придумалось, кроме как суммировать число повторений Item'a и делить вычислять как Sum(Field!Item/!Field.ItemCount). Но что-то мне такой метод не нравится ни разу.
...
Рейтинг: 0 / 0
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #36524742
nicht_shiessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nicht_shiessenДобрый вечер!
он мне честно выдаёт 12. А нужно именно 4.

ну в смысле, он мне честно выдаёт 14. А нужно именно 5.
...
Рейтинг: 0 / 0
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #36524820
Halfling
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicht_shiessen, я думаю стоит написать свою функцию
Использование в выражениях ссылок на пользовательский код
...
Рейтинг: 0 / 0
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #36525186
rus77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По моему то что вы хотите получить проще делать в запросе перед REPORTING, а потом уже полученный результат выводит в RS, если есть запрос представьте попробуем помочь ...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #37805180
Semen_v.2.01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи!

Есть аналогичная проблема, подскажите, пожалуйста, как бы это реализовать.
Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT     FilteredTask.subject, FilteredTask.new_segmentname, FilteredTask.new_plan_volume, FilteredTask.createdon, FilteredTask.owneridname, derivedtbl_1.notetext, 
                      FilteredTask.scheduledend, FilteredTask.scheduledstart, FilteredTask.regardingobjectidname, Filterednew_segments.new_weigth, 
                      Filterednew_segments.new_name
FROM         FilteredTask LEFT OUTER JOIN
                      Filterednew_segments ON Filterednew_segments.new_segmentsid = FilteredTask.new_segment LEFT OUTER JOIN
                          (SELECT     t1.objectid, FilteredAnnotation.notetext
                            FROM          (SELECT     MAX(createdon) AS Expr1, objectid
                                                    FROM          FilteredAnnotation AS table1
                                                    GROUP BY objectid) AS t1 INNER JOIN
                                                   FilteredAnnotation ON t1.objectid = FilteredAnnotation.objectid AND t1.Expr1 = FilteredAnnotation.createdon) AS derivedtbl_1 ON 
                      derivedtbl_1.objectid = FilteredTask.activityid
WHERE     (MONTH(FilteredTask.scheduledend) = @month) AND (FilteredTask.ownerid IN (@user)) AND (YEAR(FilteredTask.scheduledend) = YEAR({ fn NOW() })) OR
                      (FilteredTask.ownerid IN (@user)) AND (YEAR(FilteredTask.scheduledend) = YEAR({ fn NOW() })) AND (MONTH(FilteredTask.scheduledstart) = @month) OR
                      (MONTH(FilteredTask.scheduledend) > @month) AND (FilteredTask.ownerid IN (@user)) AND (YEAR(FilteredTask.scheduledend) >= YEAR({ fn NOW() })) AND 
                      (MONTH(FilteredTask.scheduledstart) < @month) AND (YEAR(FilteredTask.scheduledstart) >= YEAR({ fn NOW() }))



в самом отчете группирую по FilteredTask.new_segmentname , которому соответствует свой Filterednew_segments.new_weigth
после добавления итогов, разумеется, он считает общую сумму (см. приложенный файл - итого = 60, а должно быть 40)
как бы так поменять запрос, чтобы он показывал нужную сумму?

заранее благодарю
...
Рейтинг: 0 / 0
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #37805701
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen_v.2.01как бы так поменять запрос, чтобы он показывал нужную сумму?Через rollup или cube
Примеры
Код: sql
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.
declare @tovari table (tovar varchar(100), sklad varchar(100), kol integer)
insert @tovari values ('Мука', 'Склад1', 100), ('Сахар', 'Склад1', 300), ('Мука', 'Склад2', 200), ('Сахар', 'Склад2', 100)

-- Просто итоги внизу
select
case when grouping(tovar) = 1 then 'Супер Итого:' else tovar end [Товар],
isnull(sklad,'') [Склад],
sum(kol) [Количество]
from @tovari
group by rollup (tovar, sklad)
having grouping (tovar) = 1 or grouping (sklad) = 0


-- Итоги наверху
select isnull(tovar,'Супер итого:') [Товар] , 
case when grouping (tovar) = 1 and grouping (sklad) = 1 then '' when grouping (sklad) = 0 then sklad else 'Итого ' + tovar end [Склад], 
sum(kol) [Количество]
--,grouping (tovar), grouping (sklad)
from @tovari
group by rollup(tovar, sklad)
order by grouping(tovar)desc, tovar, grouping(sklad)desc



-- Перед итоговой строкой, что получается через rollup, вставить пустую строку
set nocount on
set dateformat mdy

declare @pumps table (data datetime, worktime integer, count_on integer)
insert into @pumps values('02/10/2010',23,12);
insert into @pumps values('02/11/2010',44,19);
insert into @pumps values('02/12/2010',55,46);
insert into @pumps values('02/13/2010',66,48);
insert into @pumps values('02/14/2010',77,44);

select data [Дата], s [worktime], c [count_on] --, ord
from
(
	select 1+2 * grouping(data) ord, isnull(convert(varchar,data,104), 'Итого:') data, sum(worktime) s, sum(count_on) c
	from @pumps
	group by rollup (data)
    union all
	select 2,null,null,null
) t
order by ord

-- Или так, без rollup, но таблица сканируется дважды
select convert(varchar,data,104), worktime, count_on from @pumps
union all
select null, null, null
union all
select 'Итого:', sum(worktime), sum(count_on) from @pumps



Пример посложнее, когда-то находил:
9904980
...
Рейтинг: 0 / 0
MS Reporting Services 2005. Сумма повторяющихся значений в группе
    #37829996
Semen_v.2.01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89,

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


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