Chức năng Treatas DAX không hoạt động như mong đợi, nó trả về cột trống hoàn chỉnh
Tôi đang cố gắng hiểu chức năng Treatas DAX. Có hai bảng Tài sản và Vé . Bảng vé có quan hệ cha mẹ và con cái. Đối với mỗi giá trị của Nội dung [AssetKey], tôi muốn tính số lượng con trong bảng Vé. Có hai mối quan hệ giữa các bảng này. Một hoạt động và một không hoạt động.
Vấn đề: Khi tôi sử dụng phép đo hoàn chỉnh hàm Treatas Số trẻ em bị bỏ trống. Tôi đã sử dụng công thức -
Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),TREATAS(SUMMARIZE(Asset,Asset[AssetKey]),Tickets[ParentId]))
Để sao chép kịch bản, hãy làm theo các bước sau:
Bước 1: tạo bảng tài sản :
Asset = DATATABLE("AssetKey",INTEGER,"Name",STRING,{{1,"Australia"},
{2,"Belgium"},
{3,"Canada"},
{4,"Denmark"},
{5,"England"}})
Tạo vé bàn
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}})
Bước 2: Tạo mối quan hệ giữa Assets và Ticket table (một đến nhiều) trên cột AssetKey.
Bước 3: Bây giờ tạo các Biện pháp bên dưới -
Number Of Tickets = COUNT(Tickets[TicketKey])
Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),TREATAS(SUMMARIZE(Asset,Asset[AssetKey]),Tickets[ParentId]))
Bây giờ vấn đề là: Tại sao cột Number of Child lại để trống.
Sản lượng dự kiến là:
Trả lời
Vấn đề của bạn không phải là ĐIỀU TRỊ mà là TÓM TẮT. TREATAS mong đợi đầu vào bảng để bạn tóm tắt.
Hãy thử những cách sau:
summarizedAsset = SUMMARIZE(Asset,Asset[AssetKey])
Điều này trả lại cho bạn 1,2,3,4,5. Logic bởi vì đây là những gì bạn yêu cầu nó làm. Bây giờ TREATAS cũng sẽ làm tương tự trên Ticket bảng. Vì vậy, nó trả về một bảng với một giá trị cột "trống", 1,2. Chính xác những gì chúng ta có thể mong đợi. Điều tiếp theo bạn thực hiện COUNT trên AssetKey, bảng vừa tạo không có cột này nên trả về trống.
Những gì bạn đang tìm kiếm là một cột tính toán con cái:
Number of Child =
var Akey = Asset[AssetKey]
return CALCULATE(COUNT(Tickets[ParentId]), filter(Tickets, Akey = Tickets[ParentId]))
Điều này trả về chính xác những gì bạn đang tìm kiếm.
Tái bút: 10 điểm, bạn đã làm một công việc xuất sắc trong câu hỏi yêu cầu, dễ dàng để người khác tái tạo. Bạn làm việc như một người chuyên nghiệp !!