Bartosz Ratajczyk MS SQL Developer
Temat: [SSAS 2008] Kostka z wynikami opartymi o tabelę grupującą
Nie wiem jak sobie z tym poradzić. Dopiero poznaję szerzej SSAS i mam problem, którego nie potrafię do końca rozgryźć.Mam z grubsza tabele:
Sprzedaz
-------
id (INT IDENTITY)
handlowiecId (INT)
punktId (INT)
pozycjaId (INT)
ilość (NUMERIC)
data (DATE)
Grupowanie
-------
grupaId (INT)
pozycjaId (INT)
SlownikGrup
---------
[K] grupaId (INT)
nazwa (NVARCHAR)
SlownikPozycji
---------
[K] pozycjaId (INT)
nazwa (NVARCHAR)
Plus inne nieistotne teraz słowniki, np. handlowców i punktów sprzedaży. [K] oznacza klucz główny.
Tabela 'Sprzedaz' to fakty dotyczące sprzedaży. Odnotowywane są zdarzenia dotyczące sprzedaży danych pozycji (pozycjaId). Pozycje moga być dostepne w różnych grupach, a informacje o takich przypisaniach są w tabeli 'Grupowanie'. Żeby użytkownik w docelowej kostce nie musiał nawigować po numerach dołączone są słowniki pozycji i grup.
Problem: Nie potrafię zmusic kostki do przeprocesowania i wyświetlenia wyników w podziale na grupy.
Przykład, niech będzie o sieci jakiejś piekarni.
Handlowcy (handlowiecId) sprzedają w różnych punktach sprzedaży (punktId) rozmaite produkty (pozycjaId), np. chleb razowy, bułka wrocławska, kajzerka, rurka z kremem, tort, etc. To są pozycjeId. Kierownictwo może sobie pojedyncze pozycje grupować, np. grupa 'torty', 'słodycze', 'pieczywo białe', 'bułki'. To są grupaId. Pozycje moga wystepować w kilku grupach, np. kajzerka w grupie 'pieczywo białe' i 'bułki'.
Chcę, żeby w kostce pokazane było np.
Punkt Sprzedaży | NazwaGrupy | ilość
Katowice | Pieczywo białe | 25
Katowice | Bułki | 20
Warszawa | Słodycze | 50
Próbowałem z:
- podłączaniem tabeli Grupowanie do tabeli Sprzedaż (po pozycjaId) oraz SlownikGrup do Grupowanie (po grupaId) - wiesza się przy rozwijaniu pozycji (może wina ilości kombinacji grupowania?)
- tworzeniem wymiarów pośrednich gdzie tabela Grupowanie była pośrednim, a SlownikGrup docelowym, ale się nie procesuje - zgłasza błedy w hierarchii atrybutów, ale przywzyczaiłem się że komunkaty nie zawsze sa miarodajne, to może więc nie o to chodzi.
Jak zrobić to, co mam na myśli? Moze trzeba zmienić strukturę tabel źródłowych? Możecie zasugerować jakieś rozwiązanie albo skierować do jakiejś lektury czy przykładu? Może ogólnie jest błąd logiczny, bo nie ma sensu sumować np. 'pieczywa białego' i 'bułek' w Katowicach i mechanizm się zapętla?
EDIT: Chyba sobie poradziłem. Tabela 'Grupowanie' posłużyła do utworzenia nowej grupy wymiarów, a następnie powiązałem SlownikGrup z nową grupą relacją many-to-many. Ale pytanie czy to dobrze - aktualne.Bartosz Ratajczyk edytował(a) ten post dnia 17.07.12 o godzinie 13:53