Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

Replicar esta consulta SQL en DAX

Hola a todos. Quería saber si había una manera de replicar, en mesasuras, las siguientes consultas SQL en DAX, para que se vea lo más similar posible a esto:

Medida =
var variable1 = seleccionar cliente de T1 donde first_order=True y YearMonth=202201
var variable2 = seleccionar cliente de T1 donde YearMonth=202202 y Day=1

devolución
Seleccione Count(Customer) de Variable2 donde Customer in (o no in) (Seleccione Customer de Variable1)

O

Medida =
select count(customer) de T1
donde first_order=True y YearMonth=202201 y customer in (
seleccione el cliente de T1 donde day=1 y YearMonth=202202)

Hasta ahora todo lo que he intentado hacer no ha funcionado y todo lo que encontré en Internet implica compararlo con columnas creadas en tablas, no en cierta medida 🙃.

¡Gracias!

7 Replies

  • @cris1196

    Lo siguiente devolverá un recuento único de clientes.

    Common Customers =
    VAR T1 =
        CALCULATETABLE (
            VALUES ( 'Table'[Cutomer] ),
            'Table'[first_order] = "True",
            'Table'[YearMonth] = 202201
        )
    VAR T2 =
        CALCULATETABLE (
            VALUES ( 'Table'[Cutomer] ),
            'Table'[Day] = 1,
            'Table'[YearMonth] = 202201
        )
    RETURN
        COUNTROWS ( INTERSECT ( T2, T1 ) )
    New Customers =
    VAR T1 =
        CALCULATETABLE (
            VALUES ( 'Table'[Cutomer] ),
            'Table'[first_order] = "True",
            'Table'[YearMonth] = 202201
        )
    VAR T2 =
        CALCULATETABLE (
            VALUES ( 'Table'[Cutomer] ),
            'Table'[Day] = 1,
            'Table'[YearMonth] = 202201
        )
    RETURN
        COUNTROWS ( EXCEPT ( T2, T1 ) )

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Funcionó, gracias! Una última pregunta, ¿hay alguna manera de "automatizar" esto? Es decir, por ejemplo, tengo doce valores de 7 años mensuales (de 202101 a 202107). Sé que si no estuviera usando un calculate, podría crear una variable que sea selectedvalue(T1[YearMonth]) y luego usarla como filtro, pero en una "calculatedtable" no funcionaría y no sé si hay una manera de emular eso.

      Así que al menos, si consigo que la columna del año me reconozca, solo tengo que crear 31 variables (una por día), en lugar de 31 variables para cada año/mes/añomes