Forum Discussion

linros's avatar
linros
Frequent Visitor
9 years ago
Solved

Relate one column whith another colunm inside a subselect

Hi everyone!

 

I need to convert this query in SQL to DAX, but I need to relate one column whith another colunm inside a subselect.

I tried different functions but I did not succeed.

 

SELECT a.Year
,COUNT(a.ID_Prop)
,(SELECT top 1 COUNT(b.ID_Prop) FROM Prop b where a.Year = (b.Year - 1) group by Ano) - COUNT(a.ID_Prop)
FROM Prop a
where Year is not null
group by Year
order by Year

 

Someone can help me with that?

  • I created a new Column and use that DAX:

     

    Variancy =
            VAR lastYear = 'Basis 1'[Year] - 1
            VAR actualYear = 'Basis 1'[Year]
    Return
            COUNTROWS(FILTER('Basis 1';'Basis 1'[Year] = actualYear))

            - COUNTROWS(FILTER('Basis 1';'Basis 1'[Year] = lastYear))

     

    That resolved my problem!

     

    Tk's dedelman_clng

    =D

4 Replies

  • dedelman_clng's avatar
    dedelman_clng
    Icon for Community Champion rankCommunity Champion

    Can you explain (not in SQL code) what value you are trying to find?  SQL code doesn't always translate easily to DAX, but knowing the requirement would get you pointed in the right direction.

    • linros's avatar
      linros
      Frequent Visitor

      I need to calculate the variancy of the proposals by the year for the waterfall chart. I have a table with the proposals IDs and the year of the proposal. so, I need to calculate the diference of the number of proposals of the previous year and the number of proposals of the year that the column make reference. That`s possible?

      • dedelman_clng's avatar
        dedelman_clng
        Icon for Community Champion rankCommunity Champion

        You will want to add a date table to your data model, so you can make use of time intelligence functions.  Once you have that, and join it to the rest of your model, you can use the SAMEPERIODLASTYEAR() function.  For example

         

        CountVariance = 
               CALCULATE(
                      COUNT('Proposal'[ID])
               ) - 
               CALCULATE( 
                    COUNT('Proposal'[ID]),
                    SAMEPERIODLASTYEAR('Proposal'[Date])
               )
  • linros's avatar
    linros
    Frequent Visitor

    I created a new Column and use that DAX:

     

    Variancy =
            VAR lastYear = 'Basis 1'[Year] - 1
            VAR actualYear = 'Basis 1'[Year]
    Return
            COUNTROWS(FILTER('Basis 1';'Basis 1'[Year] = actualYear))

            - COUNTROWS(FILTER('Basis 1';'Basis 1'[Year] = lastYear))

     

    That resolved my problem!

     

    Tk's dedelman_clng

    =D