Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
ziqh
Frequent Visitor

Summarising rows in calculated table

Hi All,

  Stuck on an issue that I'm almost certain is a simple one.

 

I have two tables of data, and I've taken them to a single calculated table via a UNION, like so:

CalcTable = UNION(

            SELECTCOLUMNS(Table1, "ID", [ID], "Qty A", [Quantity], "Qty B", 0),

            SELECTCOLUMNS(Table1, "ID", [ID], "Qty A", 0, "Qty B", [Quantity])

}

 

This has given me something like the following:

IDQty AQty B
1120
1010
2020
260
390

 

What I'm looking to end up with is:

IDQty AQty B
11210
2620
390

 

I thought the function for this was SUMMARIZE, but this appears to have no effect on the data.

 

Thanks for any ideas!

7 REPLIES 7
v-jiascu-msft
Employee
Employee

Hi @ziqh,

 

Could you please mark the proper answers as solutions?

 

 

Best Regards,

Dale

Community Support Team _ Dale
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Something like this should work for you.

Calc_table= VAR  inTempTable= UNION(
            SELECTCOLUMNS(Table1, "ID", [ID], "Qty A", [Quantity], "Qty B", 0),
            SELECTCOLUMNS(Table1, "ID", [ID], "Qty A", 0, "Qty B", [Quantity])
                )
          RETURN
          SUMMARIZE ( inTempTable, inTempTable[ID],"Total Qty A",SUM(inTempTable[QtyA]),"Total QtyB",SUM(inTempTable[QtyB]))

 

 

 

Thanks

Raj

 

Hi Raj, thanks for the help.

 

I've tried the suggested, but when attempting to SUM(inTempTable[QtyA]), PowerBI refuses.

Error:

Table variable "inTempTable" cannot be used in this context because a base table is expected.

 

The only fields it gives me access to in the SUM() are from other tables.

 

Thanks.

Anonymous
Not applicable

I think am confused. I see your expected output in your post, can you please post the source data of the two tables?

 

Thanks

Raj

Hi Raj,

 

Source for the two tables is a simple ODATA query.

Data itself is a bit more complex, but boils down to "ID", "Qty A" and "Qty B":

Untitled.png

 

The summarise function does not seem to accept any fields from the temporary table.

Also tried simply wrapping then UNION() in a SUMMARIZE() block, but the same occurred.

 

Glad for any advice!

Hi @ziqh,

 

There could be two methods without SUMMARIZE. Please check out the demo in the attachment.

Method 1 =
ADDCOLUMNS (
    DISTINCT ( UNION ( VALUES ( Table1[ID] ), VALUES ( Table2[ID] ) ) ),
    "Qty A", SUMX ( FILTER ( Table1, Table1[ID] = EARLIER ( Table1[ID] ) ), [Qty A] ),
    "Qty B", SUMX ( FILTER ( 'Table2', 'Table2'[ID] = EARLIER ( Table1[ID] ) ), [Qty B] )
)

Method 2: create a new table full of all ids and then add two columns.

Method 2 =
DISTINCT ( UNION ( VALUES ( Table1[ID] ), VALUES ( Table2[ID] ) ) )

Best Regards,

Dale

Community Support Team _ Dale
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

HI @ziqh

 

The UNIOIN function just combines teh data and it wont aggregate, so the output of UNION is expected one.

 

For your desired result, you need to Wrap your UNIONed query with a SUMMARIZE function.

 

Thanks

Raj

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.