Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago

DAX help needed

Hi everyone, 

 

I have a dax query that works very slow, and my data model consist of 1 fact table as well as 2 basic dimension like dim date, 

 

can you suggest an optimized code for the dax query below?

 

sales_ =
VAR delivery =
SUMMARIZE (
fact_sales,
fact_sales[id],
fact_sales[product],
"totalsales",
IF (
fact_sales[product_id] = "0",
CALCULATE (
SUM ( fact_sales[amount] ),
TOPN ( 4, fact_sales, fact_sales[s_id], DESC )
),
IF (
fact_sales[product_id] = "1",
CALCULATE (
SUM ( fact_sales[amount] ),
TOPN ( 2, fact_sales, fact_sales[s_id], DESC )
),
CALCULATE (
SUM ( fact_sales[amount] ),
TOPN ( 1, fact_sales, fact_sales[s_id], DESC )
)
)
)
)
RETURN
SUMX ( delivery, [totalsales] )

 

Thanks&Regards,

 

12 Replies

  • Wilson_'s avatar
    Wilson_
    Memorable Member

    Hello sc6161,

     

    Can you please provide a sample pbix file? (If you don't know how, please check out the pinned thread in the forum.)

  • Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).

    Do not include sensitive information or anything not related to the issue or question.

    If you are unsure how to upload data please refer to https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-p/963216

    Please show the expected outcome based on the sample data you provided.

    Want faster answers? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

    • Anonymous's avatar
      Anonymous
      Not applicable

       

      Hi lbendlin ,

       

      Thank you for your reply, I have shared sample data below and dax formula, really appreciate your help,

       

      looking forward to hear your feedback.

       

       

      id product product_id amount s_id
      100-4024449860,331,910668506
      100-4024449860,331,910668868
      100-4024449860,331,910670033
      100-4023063296,220199334
      100-4023063321,222,71866829
      100-4023063351,225,878233
      100-4023063537,220,8199336
      100-4023063906,22211889161
      100-4023063997,221,41984698
      100-4023064113,225,51992505
      100-4023064143,22077493
      100-4023064155,2210,910037981
      100-4023064180,2218,41994162
      100-4023064180,222,72015940
      100-4023064180,223,22034646
      100-4023064287,221,310613124
      100-4023064570,221,7182786
      100-4023064570,221,7183063
      100-4023064735,225,51994150
      100-4023064946,224,610289201
      100-4023065082,224,910038215
      100-4023065082,221,710038252
      100-4023065116,220,410037979
      100-4023065148,220,7199364
      100-4023065287,220,6199356
      100-4023065356,222,210607848
      100-4023065360,221,2183745
      100-4023065604,220,610036460
      100-4023065850,220,634275
          
           
           
           
           
           
           
           
           
           

      sales_ =
      VAR delivery =
      SUMMARIZE (
      fact_sales,
      fact_sales[id],
      fact_sales[product],
      "totalsales",
      IF (
      fact_sales[product_id] = "0",
      CALCULATE (
      SUM ( fact_sales[amount] ),
      TOPN ( 4, fact_sales, fact_sales[s_id], DESC )
      ),
      IF (
      fact_sales[product_id] = "1",
      CALCULATE (
      SUM ( fact_sales[amount] ),
      TOPN ( 2, fact_sales, fact_sales[s_id], DESC )
      ),
      CALCULATE (
      SUM ( fact_sales[amount] ),
      TOPN ( 1, fact_sales, fact_sales[s_id], DESC )
      )
      )
      )
      )
      RETURN
      SUMX ( delivery, [totalsales] )

       

      • lbendlin's avatar
        lbendlin
        Super User

        can you please re-post the sample data in usable format?