Forum Discussion

sprakash1192's avatar
sprakash1192
Icon for Helper II rankHelper II
6 years ago
Solved

Running total negative and slow

I am trying to calculate net inventory om hand on selected dates by doing running total on inventory transactions of all the stock receipts and stock issues. The net total is fine, but I start drilling down to some quarters / dates, the running total is negative, which should not be. I am using a calendar table. Here is my DAX query:

 
Total EA OH running total in Date =
CALCULATE(
    SUM('Inv Txns by Date'[Total EA OH]),
    FILTER(
        ALLSELECTED('Calendar'[Date]),
        ISONORAFTER('Calendar'[Date], MAX('Calendar'[Date]), DESC)
    )
 
 
Also, the performance of this query is slow. I have a lot of inventory transactions, can that be a cause? Or do I need to apply some indexes? The query takes 35 seconds to refresh everytime I change a filter or do drill up / down.
 
Please help me to enhance mmy query.
)

 

  • v-zhenbw-msft's avatar
    v-zhenbw-msft
    6 years ago

    Hi sprakash1192 ,

     

    We need to calculate the value of the same period first, then accumulate. So we can create two measures to meet your requirement.

     

    Measrue2 = 
    CALCULATE(
    SUM('Table'[values]),
    SAMEPERIODLASTYEAR('Table'[Date]),ALLSELECTED('Table'))
    same period last year = 
    CALCULATE([Measrue2],FILTER(ALLSELECTED('Table'),'Table'[Date]<=MAX('Table'[Date])))

     

    The result like this,

     

     

    If it doesn’t meet your requirement, could you please show the exact expected result based on the table that you have shared?

    BTW, pbix as attached.

     

    Best regards,

     

    Community Support Team _ zhenbw

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

3 Replies

  • sprakash1192  , try like

    CALCULATE(
    SUM('Inv Txns by Date'[Total EA OH]),
    FILTER(
    ALLSELECTED('Calendar'[Date]),
    'Calendar'[Date]<= MAX('Calendar'[Date])
    )

    • sprakash1192's avatar
      sprakash1192
      Icon for Helper II rankHelper II

      Thank you Amit. That helps. My DAX query is still slow. I think it is because of the sheer amount of data.

       

      Also, how do I calculate the running total for the same period last year and do a comparison?

      • v-zhenbw-msft's avatar
        v-zhenbw-msft
        Icon for Community Support rankCommunity Support

        Hi sprakash1192 ,

         

        We need to calculate the value of the same period first, then accumulate. So we can create two measures to meet your requirement.

         

        Measrue2 = 
        CALCULATE(
        SUM('Table'[values]),
        SAMEPERIODLASTYEAR('Table'[Date]),ALLSELECTED('Table'))
        same period last year = 
        CALCULATE([Measrue2],FILTER(ALLSELECTED('Table'),'Table'[Date]<=MAX('Table'[Date])))

         

        The result like this,

         

         

        If it doesn’t meet your requirement, could you please show the exact expected result based on the table that you have shared?

        BTW, pbix as attached.

         

        Best regards,

         

        Community Support Team _ zhenbw

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