Forum Discussion
jcoc_95
1 year agoNew Member
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 :
| CLIENTE | SKU | CAJAS |
| CLIENTE A | 301 | 3 |
| CLIENTE A | 302 | 5 |
2. TABLA ORIGEN VERTICA
| CLIENTE | SKUS | CAJAS |
| CLIENTE A | 301 | 3 |
| CLIENTE A | 302 | 2 |
| CLIENTE A | 303 | 3 |
| CLIENTE A | 304 | 1 |
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
| CLIENTE | SKUS | CAJAS ORIGEN SAP | CAJAS ORIGEN VERTICA |
| CLIENTE A | 301 | 3 | 3 |
| CLIENTE A | 302 | 5 | 2 |
| CLIENTE A | 303 | 3 | 0 |
| CLIENTE A | 304 | 1 | 0 |
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?
- Anonymous1 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 RemoveDuplicateColumnBest Regards,
Bof
1 Reply
- AnonymousNot 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 RemoveDuplicateColumnBest Regards,
Bof