Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

Convertir SQL a DAX

Hola a todos

Necesito un requisito de implementación debajo de la consulta sql en DAX.

seleccione count(*) de ContactTopic donde contactkey en (
seleccione contactkey distinto de ContactTopic donde topic='local office')
y tema<>'oficina local'
Tiene 2 condiciones, una es filterout el contactkey para ony 'oficina local' y aplicar 2nd filtro es tema de oficina local sould para estar allí en el primer resultado de la consulta.
Algunos por favor ayúdenme a escribir código DAX.
Gracias de antemano
Jilanibasha
  • Syndicate_Admin's avatar
    Syndicate_Admin
    5 years ago

    Hay @Jilanibasha ,

    Modifique la medida como se indica a continuación:

    Measure =
    VAR _table =
        CALCULATETABLE (
            VALUES ( 'ContactTopic'[ContactKey] ),
            FILTER ( ALL ( 'ContactTopic' ), 'ContactTopic'[topic] = "local office" )
        )
    RETURN
        CALCULATE (
            COUNTROWS ( 'ContactTopic' ),
            FILTER (
                ALL ( 'ContactTopic' ),
                'ContactTopic'[ContactKey]
                    IN _table
                    && 'ContactTopic'[topic] <> "local office"
            )
        )
    

    vkellymsft_0-1624959691655.png

    Compruebe mi archivo .pbix de ejemplo adjunto.

    Saludos
    Kelly

    ¿Respondí a su pregunta? Marcar mi post como una solución!

7 Replies

  • Hay @Jilanibasha ,

    ¿Puede compartir más detalles como datos de ejemplo y salida esperada, en lugar de solo una consulta sql?

    gracias

    Pragati

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hay @Pragati11,

      Tengo 2 mapas de árbol visuales, si selecciono en el primer visual, el segundo visual debe obtener el filtro, el tema seleccionado debe excluirse y las claves de contacto deben estar en el tema seleccionado para el primer objeto visual. la consulta woking bien en SQL. necesita convertir la misma lógica en dax.

      Jilanibasha_0-1624293429629.png

      y los datos son

      Jilanibasha_1-1624293483745.png

      Gracias por la ayuda de antemano.

      gracias

      Jilani

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Hay @Jilanibasha ,

        Intente siempre compartir datos de ejemplo como un adjunto. La captura de pantalla de los datos no me ayuda si quiero obtenerla en Power BI en mi extremo. 🙂

        Si entiendo su escenario:

        1. Lo primero que necesita es interacción entre sus dos objetos visuales de mapa de árbol. Esto se puede lograr fácilmente mediante Power BI mediante el uso de editar interacción. También en Power BI, de forma predeterminada, las interacciones están habilitadas entre los objetos visuales. Por lo tanto, si selecciona cualquier área en su visaul de mapa de árbol en el gráfico de la izquierda, la derecha se filtrará para la selección realizada en el gráfico de la izquierda. Si esto no está habilitado de forma predeterminada, para obtener más información, consulte este vínculo: https://www.wisdomaxis.com/technology/software/powerbi/interview-questions/what-is-the-default-visual-interaction-in-power-BI-how-to-change-it-how-many-types-of-interactions-are-there.php
        2. No entiendo la segunda parte de su requisito mencionado de la siguiente manera: "el tema seleccionado debe excluirse y las claves de contacto deben estar en el tema seleccionado para el primer objeto visual"

        gracias

        Pragati

  • Hola @Jilanibasha ,

    Creo que puede crear 2 tablas en Power Query.

    Primera tabla mediante la consulta SQL (tabla 1):

    seleccione contactkey distinto de ContactTopic donde topic='local office'

    Segunda tabla que usa una consulta SQL para traer TODOS los datos (tabla 2):

    seleccione * de ContactTopic

    En Modelo de datos, una las 2 tablas en contactkey (relación de uno a varios: filtro cruzado a ambos).

    A continuación, escriba la siguiente fórmula dax y vea si funciona

    NumofRecords =
    VAR __records =
        CALCULATETABLE ( VALUES ( Table2[Contactkey] ), Table1 )
    RETURN
        SUMX ( __records, CALCULATE ( COUNTROWS( Table2 ), KEEPFILTERS(Table2[topic]='local office') ))

  • Hay @Jilanibasha ,

    probar:

    measure =
    VAR _table =
        CALCULATETABLE (
            VALUES ( 'ContactTopic' ),
            FILTER ( ALL ( 'ContactTopic' ), 'ContactTopic'[topic] = "local office" )
        )
    RETURN
        CALCULATE (
            COUNTROWS ( 'ContactTopic' ),
            FILTER (
                ALL ( 'ContactTopic' ),
                'ContactTopic'[contackey]
                    IN _table
                    && 'ContactTopic'[topic] <> "local office"
            )
        )
    

    Saludos
    Kelly

    ¿Respondí a su pregunta? Marcar mi post como una solución!

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola Kelly,

      Las fórmulas anteriores no aceptan la comprobación in conditon con variable. está lanzando no de argumentos no es válido.

      'ContactTopic'[contackey] EN _table

      Jilanibasha_0-1624867156153.png

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Hay @Jilanibasha ,

        Modifique la medida como se indica a continuación:

        Measure =
        VAR _table =
            CALCULATETABLE (
                VALUES ( 'ContactTopic'[ContactKey] ),
                FILTER ( ALL ( 'ContactTopic' ), 'ContactTopic'[topic] = "local office" )
            )
        RETURN
            CALCULATE (
                COUNTROWS ( 'ContactTopic' ),
                FILTER (
                    ALL ( 'ContactTopic' ),
                    'ContactTopic'[ContactKey]
                        IN _table
                        && 'ContactTopic'[topic] <> "local office"
                )
            )
        

        vkellymsft_0-1624959691655.png

        Compruebe mi archivo .pbix de ejemplo adjunto.

        Saludos
        Kelly

        ¿Respondí a su pregunta? Marcar mi post como una solución!