Reporting Services 2005

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Reporting Services 2005

Сообщение shady » 23.01.2007 (Вт) 8:38

Добрый день. Подскажите пожалуйста по такой проблеме:
Как можно сделать суммы с DISTINCTом?
т.е. в моем датасете есть к примеру

ID SUMM
1 100
1 100
1 100
1 110
2 12
2 12

В деталях отчета я пишу
Код: Выделить всё
=Sum(Fields!SumPayDay.Value, "GroupByRegions")


Результатом должен стать такой вывод

ID SUMM
1 210
2 12

В транзакте так:
Код: Выделить всё
SUM ( [ ALL | DISTINCT ] expression )
Скажите, можно ли сделать сумму уникальных значений?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.01.2007 (Вт) 9:58

select id, summ(summ)
from ...
group by id
:?: :?: :?:

Но судя по желаемому результату не оно. Попробуй объяснить, по какому принципу для 1 сумма равна 210, а для 2 - 12.
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.01.2007 (Вт) 9:59

Хотя вроде догадался.
1
create view
select distinct id, summ

2
select id, summ(summ)
from view
group by id

Однако смысл такого суммирования - тайна велика есть.
Лучший способ понять что-то самому — объяснить это другому.

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 23.01.2007 (Вт) 11:00

Нет, нет. У меня уже есть результат запроса, который выводит около 20 полей. Каждая строка запроса выводит результат работы менеджера по каждой группе товаров которая за ним закреплена.
Эти поля ID и SUMM я привел для примера для наглядности. К примеру все эти записи

Код: Выделить всё
ID SUMM IDReg
1 100 22
1 100 22
1 100 22
1 110 50
2 12 54
2 12 54

принадлежат 1 менеджеру. Возьмем к примеру ID - это код менеджера, а SUMM - население этого плановая цифра для менеджера по этому региону. Здесь конечно нужно было бы сразу показать еще одно поле (код региона).
Т.к. суммировать по полю SUMM в таком виде нельзя - будут завышены плановые цифры.
Antonariy
писал(а):
Но судя по желаемому результату не оно. Попробуй объяснить, по какому принципу для 1 сумма равна 210, а для 2 - 12


Поэтому нужно суммировать только уникальные значения (как DISTINCT в T-SQL).

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.01.2007 (Вт) 14:09

Поэтому нужно суммировать только уникальные значения (как DISTINCT в T-SQL).
А я что написал во втором посте? 1 - создание представления с уникальными записями, 2 - суммирование их с группировкой по идентификатору.
Лучший способ понять что-то самому — объяснить это другому.

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 23.01.2007 (Вт) 14:45

У меня уже есть результат запроса, который выводит около 20 полей. Уже транзакт использовать не получится. Нужно скорее всего написать функцию в RS. Только я пока не представляю как это можно сделать. Да к тому же там писать надо на VB.NET


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

    TopList