March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hi all,
ich have a sales table that shows multiple rows for each order since there are changes. Each change is recorded with a new version number:
Order Nr | Value | Version |
1 | 5 | 1 |
1 | 4 | 2 |
2 | 9 | 1 |
3 | 7 | 1 |
Now I would like to calculate the sum [Value] for each order with latest version.
How would you do that? Using MAXX und Sum?
Hi @joshua1990
please try
Sum of Last Version =
SUMX (
VALUES ( 'Table'[Order Nr] ),
CALCULATE ( MAXX ( TOPN ( 1, 'Table', 'Table'[Version] ), 'Table'[Value] ) )
)
[Total Value] =
// Be careful not to filter the Sales table
// by Value or Version because the measure
// here is sensitive to filters (which is
// OK and that's how it should be). For instance,
// if you filter by Order Nr and Version, then
// the version filtered by will be effective,
// not necessarily the latest one. If you don't
// filter by Version, you'll get what you want -
// the latest version. Same for Value.
var OrdersWithLatestVersions =
generate(
values( Sales[Order Nr] ),
row(
"@LatestVersion",
calculate( max( Sales[Version] ) )
)
)
var Output =
calculate(
sum( Sales[Value] ),
treatas(
OrdersWithLatestVersions,
Sales[Order Nr],
Sales[Version]
)
)
return
Output
Here's a different method:
[Total Value] =
sumx(
generate(
selectcolumns(
values( Sales[Order Nr] ),
"@OrderNumber", Sales[Order Nr]
),
calculatetable(
topn(1,
Sales,
Sales[Version],
DESC
)
)
),
Sales[Value]
)
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
22 | |
19 | |
17 | |
9 | |
5 |
User | Count |
---|---|
37 | |
29 | |
16 | |
14 | |
12 |