2011-07-18 14 views
5

Próbuję obliczyć sumy dla każdego wiersza, a także procent ogólnej sumy.Usługi Reporting Services - Obliczanie sumy wierszy/wartości procentowe w tabeli

Teraz mam tabeli jak poniżej:

Blah Col1 Col2 Col3 
----------------------------- 
ABC  1  1  1 
DEF  2  2  3 
----------------------------- 
Total 3  3  4 

I chcę, żeby to sum/procenty tak:

Blah Col1 Col2 Col3 Total % 
-------------------------------------------- 
ABC  1  1  1  3  30% 
DEF  2  2  3  7  70% 
-------------------------------------------- 
Total 3  3  4  10 100% 

wiem, że mogę zrobić obliczenia w zapytaniu SQL , ale procedura składowana jest dość skomplikowana, więc chciałbym tego uniknąć, jeśli to możliwe. Zastanawiam się, czy istnieje prosty sposób na osiągnięcie tego w SSRS.

Właśnie teraz mam grupę wierszy dla każdego Blah, której używam do obliczania sum kolumn.

Odpowiedz

5

Aby obliczyć sumę, po prostu wykonaj prostą sumę, korzystając z operatora +. W przypadku wartości procentowej można odwołać się do sumy całkowitej za pomocą ReportItems!ItemName.

0

Utwórz dwie grupy, jedną na kolumnie, która zawiera te same dane dla każdego wiersza, a następnie jedną na kolumnie blah. dodaj wiersz do grupy emocjującej i zrób tam sumę.

1

Możesz używać funkcji agregujących w Reporting Services, takich jak "SUMA" i "AVG", aby osiągnąć to, co próbujesz zrobić. Jak to działa jest części „Detail” grup w tabelach SSRS spowoduje wyświetlenie wszystkich danych, podczas gdy części bez szczegółów (jak nagłówki i stopki) grup mogą być wykorzystywane do agregatów takich jak:

=SUM(Fields!TestValue.Value) 

http://msdn.microsoft.com/en-us/library/ms159134%28v=sql.90%29.aspx

Daj mi znać, jeśli potrzebujesz dodatkowej pomocy.

+0

Co zrobić, jeśli chcę zsumować określone wiersze, a nie wszystkie? – Si8

11

I dodaje wiersz sumy dla mojej matrycy, potem odwoływać pole tekstowe sum (pole tekstowe 8 w moim przypadku) dla kolumny i zrobiłem:

Sum(Fields.FieldName.Value)/ReportItems!Textbox8.Value 

Mam nadzieję, że to ma sens!

0

można po prostu zrobić w następujący sposób: Sum (! CInt (Pola TestValue.Value)) lub Sum (CInt (Pola DollarAmountOfCheck.Value), "DataSet1"!) kiedyś, gdy dane są wpadające przez WCF go, nie przyjmuje funkcji Sum(). ale to działa dobrze w takim przypadku.

Powiązane problemy