Forum Discussion

JulietZhu's avatar
JulietZhu
Helper IV
7 years ago

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

  • 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-msft's avatar
    v-jiascu-msft
    Microsoft 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