Forum Discussion

jcoc_95's avatar
jcoc_95
New Member
1 year ago
Solved

CONSULTAS POWER BI

Hola expertos :D. tengo un problema en CONSULTAS DE POWER BI  que no he podido resolver. les explico:

 

EJEMPLO :

TENGO TRES TABLAS

1. TABLA ORIGEN SAP :

CLIENTESKUCAJAS
CLIENTE A3013
CLIENTE A3025

 

2. TABLA ORIGEN VERTICA

CLIENTESKUSCAJAS
CLIENTE A3013
CLIENTE A3022
CLIENTE A3033
CLIENTE A3041

3. PLAN DE VISITAS

LO QUE QUIERO ES BUSCAR EL CLIENTE Y SKU EN AMBAS TABLAS Y TRAER LAS CAJAS

ES DECIR QUE ME APAREZCA ASI

CLIENTESKUSCAJAS ORIGEN SAPCAJAS ORIGEN VERTICA
CLIENTE A30133
CLIENTE A30252
CLIENTE A30330
CLIENTE A30410
    

PERO ME SALE ASI: es decir un DOS COLUMNAS CON SKU Y SOLO QUIERO UNA.

 

SOLO QUIERO JUNTA LAS DOS COLUMNAS DE SKUS EN UNA SOLA COLUMNA PERO SIN QUE SE REPITAN LOS SKUS O SIN QUE FALTAN UNO DE OTRO.

 

ME PUEDEN AYUDAR?

  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi jcoc_95 ,

     

    Please try this M code;

    let
        // Load the SAP source table
        SAPTable = Table.FromRecords({
            [CLIENTE = "CLIENTE A", SKU = 301, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKU = 302, CAJAS = 5]
        }),
    
        // Load the VERTICA source table
        VERTICATable = Table.FromRecords({
            [CLIENTE = "CLIENTE A", SKUS = 301, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKUS = 302, CAJAS = 2],
            [CLIENTE = "CLIENTE A", SKUS = 303, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKUS = 304, CAJAS = 1]
        }),
    
        // Rename columns in both tables to avoid name conflicts
        SAPRenamed = Table.RenameColumns(SAPTable, {{"CLIENTE","CLIENTE_SAP"},{"CAJAS", "CAJAS ORIGEN SAP Temp"}}),
        VERTICARenamed = Table.RenameColumns(VERTICATable, {{"CAJAS", "CAJAS ORIGEN VERTICA Temp"}}),
    
        // Merge tables using CLIENTE and SKU columns, with a full outer join to include all SKUs
        MergedTable = Table.Join(SAPRenamed, {"CLIENTE_SAP", "SKU"}, VERTICARenamed, {"CLIENTE", "SKUS"}, JoinKind.FullOuter),
    
    
    
        ReplacedColumn = Table.AddColumn(MergedTable,"CAJAS ORIGEN SAP",each if [CAJAS ORIGEN SAP Temp] <> null then [CAJAS ORIGEN SAP Temp] else  [CAJAS ORIGEN VERTICA Temp]),
        ReplacedColumn2 = Table.AddColumn(ReplacedColumn,"CAJAS ORIGEN VERTICA", each if [CAJAS ORIGEN SAP Temp] <> null then [CAJAS ORIGEN VERTICA Temp] else null),
        // Remove one of the duplicate CLIENTE columns after merging
        RemoveDuplicateColumn = Table.RemoveColumns(ReplacedColumn2, {"CLIENTE_SAP","SKU","CAJAS ORIGEN SAP Temp","CAJAS ORIGEN VERTICA Temp"})
            
        
    in
        RemoveDuplicateColumn

     

    Best Regards,

    Bof

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi jcoc_95 ,

     

    Please try this M code;

    let
        // Load the SAP source table
        SAPTable = Table.FromRecords({
            [CLIENTE = "CLIENTE A", SKU = 301, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKU = 302, CAJAS = 5]
        }),
    
        // Load the VERTICA source table
        VERTICATable = Table.FromRecords({
            [CLIENTE = "CLIENTE A", SKUS = 301, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKUS = 302, CAJAS = 2],
            [CLIENTE = "CLIENTE A", SKUS = 303, CAJAS = 3],
            [CLIENTE = "CLIENTE A", SKUS = 304, CAJAS = 1]
        }),
    
        // Rename columns in both tables to avoid name conflicts
        SAPRenamed = Table.RenameColumns(SAPTable, {{"CLIENTE","CLIENTE_SAP"},{"CAJAS", "CAJAS ORIGEN SAP Temp"}}),
        VERTICARenamed = Table.RenameColumns(VERTICATable, {{"CAJAS", "CAJAS ORIGEN VERTICA Temp"}}),
    
        // Merge tables using CLIENTE and SKU columns, with a full outer join to include all SKUs
        MergedTable = Table.Join(SAPRenamed, {"CLIENTE_SAP", "SKU"}, VERTICARenamed, {"CLIENTE", "SKUS"}, JoinKind.FullOuter),
    
    
    
        ReplacedColumn = Table.AddColumn(MergedTable,"CAJAS ORIGEN SAP",each if [CAJAS ORIGEN SAP Temp] <> null then [CAJAS ORIGEN SAP Temp] else  [CAJAS ORIGEN VERTICA Temp]),
        ReplacedColumn2 = Table.AddColumn(ReplacedColumn,"CAJAS ORIGEN VERTICA", each if [CAJAS ORIGEN SAP Temp] <> null then [CAJAS ORIGEN VERTICA Temp] else null),
        // Remove one of the duplicate CLIENTE columns after merging
        RemoveDuplicateColumn = Table.RemoveColumns(ReplacedColumn2, {"CLIENTE_SAP","SKU","CAJAS ORIGEN SAP Temp","CAJAS ORIGEN VERTICA Temp"})
            
        
    in
        RemoveDuplicateColumn

     

    Best Regards,

    Bof