Forum Discussion

paweldm's avatar
paweldm
Helper II
9 years ago
Solved

Last invoice amount

HI,

 

Problem: How can I  calculate last invoice amount?

 

Simplified Model: 

Customer Table with the following column:

CustomerID  (Thera are only unique customers' id)

 

Sales Table with the following columns:

 

CustomerID | InvoiceNo | ProductName | ProductPrice | ProductQuantity| InvoiceAmount | InvoiceDate

 

Customer Tabel is conected to Sales Table with 1-to-many relations.

 

Measure:

#LastOrderDate = LASTDATE(Sales[Date])

 

My tabel report has the following columns:

 

Customer[CustomerID] | #LastOrderDate |

 

I would like to add 1 more measure to the table report  to calculate LastOrderValue.

 

Thx for support!

 

PaweÅ‚ 

  • What you want is an application of what we call "Last Non Empty" order. There are 4 types of Last Non Empty patterns, and if you want to dive deep into it, I would recommend you to one of my old blogs -

    http://sqljason.com/2012/06/lastnonempty-in-tabular-mode-part-1.html

     

    If you just want the solution, my understanding is that you want the last non empty order for all customers on that date.

    Sales_LNE :=
    CALCULATE ( SUM ( Sales[Sales] ), LASTDATE ( Sales[Date] ) )

     This is the first pattern from my blog (and you can also use a filter() instead of the lastdate()). If the last date is different for every customer (which means, if you dont get orders for all customers on each date), you might want to use the second pattern with SUMX.

2 Replies

  • SqlJason's avatar
    SqlJason
    Memorable Member

    What you want is an application of what we call "Last Non Empty" order. There are 4 types of Last Non Empty patterns, and if you want to dive deep into it, I would recommend you to one of my old blogs -

    http://sqljason.com/2012/06/lastnonempty-in-tabular-mode-part-1.html

     

    If you just want the solution, my understanding is that you want the last non empty order for all customers on that date.

    Sales_LNE :=
    CALCULATE ( SUM ( Sales[Sales] ), LASTDATE ( Sales[Date] ) )

     This is the first pattern from my blog (and you can also use a filter() instead of the lastdate()). If the last date is different for every customer (which means, if you dont get orders for all customers on each date), you might want to use the second pattern with SUMX.

    • paweldm's avatar
      paweldm
      Helper II
      Thank you. The second pattern with SUMX is what I need.
      I tried to expolore the LastEverNonEmpty measure for each customer as well but I am not sure if I can apply it to my case.