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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
zivhimmel
Resolver I
Resolver I

Two types of fact tables in the same visualization

Hi,

I'm trying to solve the following modeling challange. I have one solution in mind, which is a bit ugly,

and would be happy to hear other ideas.

 

The model is for a finanicial instituation. Let's simplify and say it's a bank.

We need to show in one visualization the net money transactions(+11M$ for example), as well as balance at the end of the period(350M$), grouped by days or months.

The money transactions are basically deposits and withdrawlas. If someone deposits 400$ on a specific month and withdraws 100$, that person contributes 300$ to the net money transaction of that month.

The balance, however, cannot be calculated using the transactions because it includes some movement that is not reresented in the transactions table(e.g. interest).

 

Data sources(very simplified) :

1. daily transaction aggregation fact : fact_transaction : user_id, date_id, net_amount

2. daily balance table : fact_balance : user_id, date_id,balance

3. dim_user and dim_date

 

The visualization should show something like that :

Month, net money growth, balance

(month can be replaced by year, day, week, quarter etc.).

 

The two fact tables are very different. fact_transaction is a transaction fact(can be aggregated) while fact_balance is a periodic snapshot and cannot be aggregated. 

 

As I mentioned, I have a solution in mind, but it isn't pretty and I'd like to hear your ideas on how to enable this.

Solutions can be within Power BI desktop or on the database level(I'm the DBA too and can prepare the data in whatever way necessary).

 

Thanks !

 

1 ACCEPTED SOLUTION

@zivhimmel

 

Not sure if I understand your requirement correctly. If you want the monthly balance to be the balance value of last day of one month. You can try with following measure formula.

MonthBalance = 
CALCULATE (
    SUM ( TestFactBalance[Balance] ),
    FILTER (
        TestFactBalance,
        TestFactBalance[DateID] = MAX ( TestFactBalance[DateID] )
    )
)

Two types of fact tables in the same visualization_1.jpg

 

Best Regards,

Herbert

View solution in original post

5 REPLIES 5
v-haibl-msft
Microsoft Employee
Microsoft Employee

@zivhimmel

 

I think I have a general understanding to your requirement. But could you please give us some sample data and relationship of your tables? I also would like to see the expected output result.

 

Best Regards,

Herbert

Thanks ! Here's what you've asked for.

First, the relationship :

 

relationship.PNG

 

sample data(this is just a sample so doesn't necessarily make sense) :

data.PNG

 

And the result. There are two visualizations. The daily is fine - there's no problem with summarizing the daily balance.

The monthly is wrong because it takes all the daily balances and summarizes them.

result.PNG

 

I think I've made my peace with the following solution :

Keep a daily balance table like I have here + add another monthly balance table which will have only one balance record per user per month(last day of month or first day of month record).

The daily visualization will use the daily table, the monthly will use the monthly and that would be ok for this report.

It won't, however, allow for different date periods. For example, If I want to get info about the entire period of 

August 3rd until August 15th(not daily breakdown), I can get the transaction data but not the balance. 

I think my users can live with that and can go around it by just having different reports for balance and for transactions,

but still wanted to ask if someone has a better solution.

Thanks allot for your time.

 

 

@zivhimmel

 

Not sure if I understand your requirement correctly. If you want the monthly balance to be the balance value of last day of one month. You can try with following measure formula.

MonthBalance = 
CALCULATE (
    SUM ( TestFactBalance[Balance] ),
    FILTER (
        TestFactBalance,
        TestFactBalance[DateID] = MAX ( TestFactBalance[DateID] )
    )
)

Two types of fact tables in the same visualization_1.jpg

 

Best Regards,

Herbert

Yes, I think this is it. Thanks !

zivhimmel
Resolver I
Resolver I

Ahm...anyone ?

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors