Пов’язаний різний рахунок; Шаблони DAX
Зв’язаний шаблон різного підрахунку корисний, коли у вас є одна або кілька таблиць фактів, пов’язаних із виміром, і вам потрібно виконати окремий підрахунок значень стовпців у таблиці вимірів, враховуючи лише елементи, пов’язані з транзакціями в таблиці фактів. Для демонстраційних цілей ми використовуємо чіткий рахунок назви товару в моделі з двома таблицями фактів: Продажі та Квитанції.

Оскільки назва товару не є унікальною - ми штучно запровадили дубльовані імена, видаливши опис кольору з назви продукту - простий чіткий підрахунок ключа продукту в таблиці Продажі або Квитанції не працює. Нарешті, ми покажемо, як обчислити окремий підрахунок найменувань товарів, які відображаються в обох таблицях і принаймні в одній із двох.
Стовпець Product [Product Name] не є унікальним у таблиці Product, і нам потрібен чіткий підрахунок назв товарів, які мають пов’язані операції продажу. Модель містить дві таблиці з транзакціями, пов’язаними з продуктами: Продажі та Надходження. На рисунку 1 показана ця модель даних.
Фігура 1 Модель даних містить дві таблиці фактів: Продажі та Надходження.
На основі цієї моделі ми хочемо обчислити різну кількість назв товарів, що з’являються:
- У продажу.
- У квитанціях.
- І в продажах, і в квитанціях
- Принаймні в одному з продажів і квитанцій
Звіт видно на малюнку 2.
Малюнок 2 У звіті показано чотири заходи, продемонстровані у зразку.
Код для перших двох мір такий:
За допомогою SUMMARIZE показники # Prods from Sales і # Prods from Receits отримують різні назви продуктів, на які посилаються у відповідній таблиці. SUMX просто підраховує кількість цих продуктів, і він використовується замість COUNTROWS або DISTINCTCOUNT з міркувань ефективності - детальніше в статті Аналіз ефективності DISTINCTCOUNT у DAX.
Незважаючи на те, що вона довша за рішення, що використовує DISTINCTCOUNT та двонаправлену перехресну фільтрацію, ця версія коду є найшвидшою у найпоширеніших випадках - коли кількість продуктів значно менша, ніж кількість транзакцій.