2012-07-09 7 views
6

Wiem, że nie możemy użyć funkcji agregującej dla filtra w macierzy.Funkcja agregująca "Aggregate" nie może być używana w raporcie zawierającym jakiekolwiek filtry.

Oto sytuacja w AdventureWorks. Mam trzy poziomy:

  1. Kategoria
  2. Podkategoria
  3. wyrobów

A 1 Calc_Member:

=With MEMBER Calc_Member as [Measures].[Internet Average Sales Amount] 

I rzeczywiście:

[Measures].[Internet Average Sales Amount]= 
[Measures].[Internet Sales Amount]/[Measures].[Internet Order Count] 

Chcę różnych agregacji dla każdego poziomu w hierarchii. Dla podkategorii i produkt folmula dla Calc_Member jest jak już wspomniano wcześniej:

[Measures].[Internet Average Sales Amount] 

Ale dla kategorii Poziom chcę Średnia powiązanych podkategorii:

WITH MEMBER Calc_Member AS 
    Average(existing [Product].[Subcategory].[Subcategory].members 
    , [Measures].[Internet Average Sales Amount]) 

W usługach Analysis Działa to dobrze, ale mieć raport w Reporting Services na podstawie zbioru danych:

  • kategorii
  • subcaegory
  • produkt
  • Calc_member

W SSRS użyć matrycę z trzech grup rzędu i dodają sumie dla każdej grupy. Dla poziomu Kategorii 1 chcesz użyć funkcji agregującej w ssrs (aby użyć Formlula zdefiniowanej w usłudze analitycznej) i znowu działa dobrze.

Ale jeśli chcę użyć filtru na niektóre państwa (np kategorii, podkategorii, produkt) go wyrzucić ten błąd:

The aggregate function "Aggregate" cannot be used in a report that contains any filters

I ten błąd jest accepteable też, ale co ja nie undrestand jest: jeśli używam funkcji agregującej w Matrix1 i używam filtru w Matrix2, to powoduje to również błąd.

Dlaczego?

+1

To bardzo trudno zrozumieć pytanie, jak jest. Być może możesz go edytować i dodać kilka próbek kodu, powiedzieć nam, co wypróbowałeś, dlaczego to nie działa, itd.? W tej chwili nie możemy ci naprawdę pomóc. – Jeroen

+0

Dzięki za edycję. Próbowałem zaktualizować go jeszcze trochę, miejmy nadzieję, bez zmiany znaczenia. Pytanie jest jednak trochę trudne do zrozumienia - prawdopodobnie bariera językowa? Być może ktoś inny może zobaczyć, co się dzieje i odpowiedzieć na nie ... – Jeroen

+0

Witam Jeroen Bardzo dziękuję za podążanie.zapomnieć o moim poprzednim pytaniu .patrz to jeśli to możliwe.put Macierz w ssrs używa funkcji agregującej w niej. a następnie umieść kolejną macierz i użyj w niej filtra, po tym jak zobaczysz błąd Dzięki. – abianari

Odpowiedz

0

Czy możesz dołączyć agregat do zbioru danych, a następnie użyć go jako filtra? (widocznie muszę komentować 50 reputacji)

na przykład:

SELECT item, quantity, aggregateQuantity 
FROM TABLE T1 
LEFT JOIN (SELECT item, SUM(Quantity) AS aggregateQuantity FROM TABLE) T2 
ON T1.item = T2.item 
Powiązane problemy