Treatas DAX işlevi beklendiği gibi çalışmıyor, tamamen boş sütun döndürüyor

Aug 16 2020

Treatas DAX işlevini anlamaya çalışıyorum. Varlıklar ve Bilet olmak üzere iki tablo vardır . Bilet tablosunun üst ve alt ilişkisi vardır. Her Asset [AssetKey] değeri için, Bilet tablosundaki alt öğe sayısını hesaplamak istiyorum. Bu tablolar arasında iki ilişki vardır. Biri aktif, diğeri inaktif.

Sorun: Tedaviler işlevini kullandığımda tam önlem Çocuk Sayısı boş bırakılıyor . Formülü kullandım -

Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),TREATAS(SUMMARIZE(Asset,Asset[AssetKey]),Tickets[ParentId]))

Senaryoyu çoğaltmak için aşağıdaki adımları izleyin:

Adım 1: Tablo Varlığını Oluşturun :

Asset = DATATABLE("AssetKey",INTEGER,"Name",STRING,{{1,"Australia"},
{2,"Belgium"},
{3,"Canada"},
{4,"Denmark"},
{5,"England"}})

Masa bileti oluştur

Tickets = DATATABLE("AssetKey",INTEGER,"ParentId",INTEGER,"TicketKey",INTEGER,{{3,1,1},
{1,Blank(),1},
{3,1,3},
{2,Blank(),4},
{4,2,5},
{3,1,6},
{2,Blank(),7},
{4,2,8},
{1,Blank(),9},
{5,2,10}})

Adım 2: AssetKey sütununda Varlıklar ve Bilet tablosu (birden çoğa) arasında ilişki oluşturun.

3. Adım: Şimdi aşağıdaki Önlemleri oluşturun -

Number Of Tickets = COUNT(Tickets[TicketKey])

Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),TREATAS(SUMMARIZE(Asset,Asset[AssetKey]),Tickets[ParentId]))

Şimdi sorun: Neden Çocuk Sayısı sütunu boş çıkıyor?

Beklenen çıktı:

Yanıtlar

1 Aldert Aug 16 2020 at 23:23

Senin sorunun ANTLAŞMALAR değil, ÖZET. TREATAS, özetlemeniz için tablo girdisini bekler.

Takip etmeyi dene:

summarizedAsset = SUMMARIZE(Asset,Asset[AssetKey])

Bu size 1,2,3,4,5 döndürür. Mantık çünkü ondan yapmasını istediğiniz şey buydu. Şimdi TREATAS aynı şeyi masada Bilet yapacak. Dolayısıyla, bir sütun değeri "boş" olan bir tablo döndürür, 1,2. Tam olarak ne bekleyebiliriz. AssetKey'de COUNT yaptığınız sonraki şey, az önce oluşturulan bu tablo bu sütuna sahip olmadığından boş olarak döndürülür.

Aradığınız şey çocukları hesaplayan bir sütun :

Number of Child = 
var Akey = Asset[AssetKey]
return CALCULATE(COUNT(Tickets[ParentId]), filter(Tickets, Akey = Tickets[ParentId]))

Bu tam olarak aradığınız şeyi döndürür.

Not: 10 puan, soru sorma konusunda mükemmel bir iş çıkardınız, diğerleri için kolayca yeniden üretebildiniz. Bir profesyonel olarak çalışıyorsun !!