Forum Discussion

randyvik's avatar
randyvik
New Member
6 years ago
Solved

Combinar tablas vittuales

Hola a todos,

Tengo 2 variables de tabla virtual en el siguiente código DAX: table1 y table2. Pero no sé cómo fusionar virtualmente

Dummy á var table0 ? SELECTCOLUMNS(FILTER('Master table','Master table'[Cantidad de transacciones]<>0),"Fecha",'Tabla maestra'[Fecha],"Precio de transacción",'Tabla maestra'[Precio de transacción'[Precio de transacción ],"Cantidad de transacciones", 'Tabla maestra'[Cantidad de transacciones], "Nombre de seguridad",'Tabla maestra'[Nombre de seguridad],"Categoría",'Tabla maestra'[Categoría],"Sub-categoría",'Tabla maestra'[Sub-Categoría])
var table1 á ADDCOLUMNS(table0,"Date rank",RANKX(FILTER(table0,[Security Name]-EARLIER([Security Name])),[Date],ASC,Dense))
var table2 - SUMMARIZE('Master table','Master table'[Security name],"sold quantity",CALCULATE(SUM('Master table'[Sold quantity])))
¿¿¿devolución???

Salida para table1

FechaPrecio de las transaccionesCantidad de transaccionesNombre de seguridadCategoríaSubcategoríaRango de fecha
10-01-2017 00:0030100MiraeFondo MutuoEquidad1
10-02-2017 00:0030100MiraeFondo MutuoEquidad2
10-03-2017 00:0030100MiraeFondo MutuoEquidad3
10-04-2017 00:0030100MiraeFondo MutuoEquidad4
10-05-2017 00:0030100MiraeFondo MutuoEquidad5
15-05-2017 00:0030100MiraeFondo MutuoEquidad6
22-05-2017 00:0030100MiraeFondo MutuoEquidad7
12-06-2017 00:0030100MiraeFondo MutuoEquidad8
10-07-2017 00:0030100MiraeFondo MutuoEquidad9
10-08-2017 00:0040200MiraeFondo MutuoEquidad10
17-04-2018 00:0040200Banco HDFCAccionesAcciones1
17-04-2018 00:0040200KeiAccionesAcciones1
17-04-2018 00:0040200ConfianzaAccionesAcciones1
12-03-2019 00:0040200SundaramFondo MutuoEquidad1
20-05-2019 00:0040200Pinturas asiáticasAccionesAcciones1
20-05-2019 00:0040200HDFCAccionesAcciones1
20-05-2019 00:0040200PidiliteAccionesAcciones1
23-10-2019 00:0040200Kotak MahindraAccionesAcciones1
19-12-2019 00:0050300Eje bluechipFondo MutuoEquidad1
23-12-2019 00:0050300AgujeroAccionesAcciones1
27-02-2020 00:0050300HDFCAccionesAcciones2
27-02-2020 00:0050300Banco HDFCAccionesAcciones2
02-03-2020 00:0050300AgujeroAccionesAcciones2
02-03-2020 00:0050300ConfianzaAccionesAcciones2
07-04-2020 00:0050300TitanAccionesAcciones1
09-04-2020 00:0050300TcsAccionesAcciones1
09-07-2020 00:0050300Eje a corto plazoFondo MutuoDeuda1

Salida para table2

Nombre de seguridadcantidad vendida
Pinturas asiáticas0
HDFC0
Agujero0
Confianza5
Eje a corto plazo0
Tcs0
Kei0
Titan0
Sensex0
Banco HDFC0
Kotak Mahindra0
Mirae0
Sundaram0
Pidilite0
Eje bluechip0

En la instrucción return de DAX, quiero que un código combine estas tablas virtualmente usando su columna de nombre de seguridad respectivamente. No puedo crear una tabla independiente para esta operación debido a otras restricciones. También soy nuevo en Power BI, así que será de gran ayuda para mí si alguien de ustedes pudiera compartirme su solución para esto

Gracias

  • Greg_Deckler's avatar
    Greg_Deckler
    6 years ago

    @randyvik Sin embargo, esto funciona:

    Table 4 = 
        VAR __Table2 = { (1,"A","Black"),(2,"B","White"),(3,"C","Blue")}
        VAR __Table3 = { (1,"A","One"),(2,"B","Two"),(3,"C","Three")}
        VAR A = SELECTCOLUMNS(__Table2,"Key",[Value1],"Color",[Value3])
        VAR B = SELECTCOLUMNS(__Table3,"Key",[Value1],"Number",[Value3])
    RETURN
        NATURALINNERJOIN(A, B)

    @marcorusso ¡Ayuda! Consulte las tablas maestras en el PBIX adjunto. Así como el Cuadro 2 y el Cuadro 3 y el Cuadro 5 (error)

15 Replies

    • randyvik's avatar
      randyvik
      New Member

      Gracias por su rápida respuesta. Intenté el siguiente código

      Dummy á var table0 ? SELECTCOLUMNS(FILTER('Master table','Master table'[Cantidad de transacciones]<>0),"Fecha",'Tabla maestra'[Fecha],"Precio de transacción",'Tabla maestra'[Precio de transacción'[Precio de transacción ],"Cantidad de transacciones", 'Tabla maestra'[Cantidad de transacciones], "Nombre de seguridad",'Tabla maestra'[Nombre de seguridad],"Categoría",'Tabla maestra'[Categoría],"Sub-categoría",'Tabla maestra'[Sub-Categoría])
      var table1 á ADDCOLUMNS(table0,"Date rank",RANKX(FILTER(table0,[Security Name]-EARLIER([Security Name])),[Date],ASC,Dense))
      var table2 - SUMMARIZE('Master table','Master table'[Security name],"sold quantity",CALCULATE(SUM('Master table'[Sold quantity])))
      resultado de var: NATURALLEFTOUTERJOIN(table1,table2)
      resultado de retorno
      Sin embargo, aparece un error que indica que "No se han detectado columnas de combinación comunes. La función de combinación 'NATURALLEFTOUTERJOIN' requiere al menos una columna de combinación común". ¿Cómo se especifica la columna join en una tabla virtual?
      • Greg_Deckler's avatar
        Greg_Deckler
        Icon for Community Champion rankCommunity Champion

        @randyvik Permítanme burlarme de esto, NATURALINNERJOIN puede estar enloqueciendo a veces!