Wpis z mikrobloga

Pytanie bardziej teoretyczne. Załóżmy, że mam takie tabele z kolumnami jak niżej:
1. 'Sales1'[CustomerId, Sale]
2. 'Client'[CustomerId]
3. 'Sales2'[CustomerId]

W tabeli Sales2 chcialbym dodac kolumne z suma 'Sales1'[Sale] dla kazdego CustomerID.
Relacje są zdefiniowane następująco: 'Sales1' - 'Client' (many-1, Single), 'Sales2' - 'Client' (many-1, Both), więc jest połączenie między tabelami Sales przez tabele Client.

Dodatkową kolumne w 'Sales2' chciałem utworzyć przez funkcje CALCULATE(SUM('Sales1'[Sale]), jednak ta funkcja nie zwraca mi wyniku dla żadnego wiersza w 'Sales2' Gdy utworzyłem taką samą miarę to na raporcie składającym się z 'Sales2'[CustomerId] oraz tej miary, wszystko jest ładnie rozbite na CustomerId.

Problem udało mi się rozwiązać przez połączenie 'Sales2' z 'Sales1' many-many i wtedy wspomniana wcześniej funkjca CALCULATE wylicza nową kolumne, jednak dlaczego nie działała ona wcześniej, gdy połączenie było przez tabele Clinet?

Wydawało mi się logiczne, że powinno to działać, rozbijając to na składniki jak rozumiem, może ktoś poprawi w którym miejscu źle rozumiem:
1. Funkcja CALCULATE uzyta w calculate column zamienia row context na filter context, tym samym filtruje tabele Client po ClientID (kierunek jest ustawiony jako Both więc Sales2 może filtorwać Client),
2. Tabela Client filtruje tabele Sales1
3. Z wyfiltrowanej tabeli Sales1 funkcja sumuje Sale i zwraca w Sales2 w odpowiednim wierszu.

Co tutaj działa inaczej niż mi się wydaje?
#powerbi
  • 3
  • Odpowiedz
@norbertkulski: No nie wiem o co to chodzi. SUMX z RELATEDTABLE działa. Jak pod calculate wstawię jakiegoś counta z Customer to zlicza, więc tutaj połączenie jest ok. Tak samo jak sprawdzam na tabeli Customer, jakiegoś calculate do Sales1 to też zwraca wyniki. Sprawdziłem na inny pliku taka konfiguracje i tam też to działa. Niestety nie mogę wysłać pliku do sprawdzenia bo ten problem wystąpił w pracy. No nic, udało mi
  • Odpowiedz