Forum Discussion

Analitika's avatar
Analitika
Post Prodigy
2 years ago
Solved

Data model

Hi,

 

I have data model but my relationships not working well. I can't callculate customers count per item, baskets. My model looks like this:

Maybe I created wrong model, so how make it correct that I could use customers within items and baskets?

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi  Analitika ,

     

    You can try the following dax:

    Baskets_count =
    var _column=SELECTCOLUMNS('customer',"cid",'customer'[c_id])
    return
    COUNTX(
        FILTER(ALL('Baskets'),
        'Baskets'[c_id] in _column),[p_id])
    Item_count =
    var _customercid=SELECTCOLUMNS('customer',"cid",'customer'[c_id])
    var _basketpid=SELECTCOLUMNS(FILTER('Baskets','Baskets'[c_id] in _customercid),"p_id",'Baskets'[p_id])
    return
    COUNTX(
        FILTER(all(Items),
        'Items'[p_id] in _basketpid),'Items'[item_category])

     

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

2 Replies

  • This model might be the reason that there is an issue. Make the customer table, the main table and have many to one relationship with the other tables.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Analitika ,

     

    You can try the following dax:

    Baskets_count =
    var _column=SELECTCOLUMNS('customer',"cid",'customer'[c_id])
    return
    COUNTX(
        FILTER(ALL('Baskets'),
        'Baskets'[c_id] in _column),[p_id])
    Item_count =
    var _customercid=SELECTCOLUMNS('customer',"cid",'customer'[c_id])
    var _basketpid=SELECTCOLUMNS(FILTER('Baskets','Baskets'[c_id] in _customercid),"p_id",'Baskets'[p_id])
    return
    COUNTX(
        FILTER(all(Items),
        'Items'[p_id] in _basketpid),'Items'[item_category])

     

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.