Forum Discussion
DAX help from table join
Need translate those sql into DAX.
SELECT COUNT(DISTINCT b.billId) AS BilledCount
FROM Bill b WITH (NOLOCK)
LEFT JOIN dbo.Transactions t
ON (b.Billid = t.billid)
WHERE t. TransactionTypeID= 4 and billdate between '2018-08-01' and '20180831'
I have two DAX. One is from Bill table, and the other one is from transction table. They have one to many relationship.
But both DAX give me different number from SQL statement. Can anyone help to see what is wrong with my DAX. Thanks.
5 Replies
- AkhilAshokSolution Sage
Why not try this way:
Billed Count = CALCULATE ( DISTINCTCOUNT ( Transactions[billId] ), Transactions[TransactionTypeID] = 4 )The filter on TransactionTypeID won't flow to Bill table (since it is the one side of relationship). So, if you take distinctcount billID fron Bill table, then you have to either enable bi-directional filtering between Bill & Transactions, or use CROSSFILTER function in DAX. A more performing approach is to just take Distinctocunt of BillID from Transactions table as I showed.
- v-jiascu-msftMicrosoft Employee
Hi JulietZhu,
Can you share the relationship? It's better to have the file if possible.
1. How does "Date" table connect with other tables?
2. Are the relationships set to filter both? The "Cross Filter Direction" setting.
3. Are all the IDs in both tables?
I think the [Bill] shouldn't be filtered.
Best Regards,
Dale- JulietZhuHelper IV
Here is relationship.
- v-jiascu-msftMicrosoft Employee
Hi JulietZhu,
AkhilAshok just explained and gave the solution. Please try it out in your model.
Best Regards,
Dale