Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
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:
ID | Qty A | Qty B |
1 | 12 | 0 |
1 | 0 | 10 |
2 | 0 | 20 |
2 | 6 | 0 |
3 | 9 | 0 |
What I'm looking to end up with is:
ID | Qty A | Qty B |
1 | 12 | 10 |
2 | 6 | 20 |
3 | 9 | 0 |
I thought the function for this was SUMMARIZE, but this appears to have no effect on the data.
Thanks for any ideas!
Hi @ziqh,
Could you please mark the proper answers as solutions?
Best Regards,
Dale
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.
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":
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
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
110 | |
94 | |
81 | |
66 | |
58 |
User | Count |
---|---|
150 | |
119 | |
104 | |
87 | |
67 |